
> test:e2e
> playwright test --reporter=list


Running 156 tests using 8 workers

  -    3 [Desktop Chrome] › tests\e2e\admin-password-change.spec.ts:10:7 › admin password change › changes password through the real admin UI
Username filled: true, Password filled: true

=== 1단계: 로그인 페이지 이동 ===
✓ 페이지 로드: 관리자 로그인

=== 2단계: 로그인 수행 ===
[Browser Console] [error] Error in mono_download_assets: Error: download 'http://localhost:5001/taxbaik/admin/_framework/System.Runtime.InteropServices.y2d70ja2cw.wasm' for System.Runtime.InteropServices.y2d70ja2cw.wasm failed 0 TypeError: Failed to fetch
[Browser Console] [error] Error in mono_download_assets: Error: download 'http://localhost:5001/taxbaik/admin/_framework/System.Runtime.InteropServices.y2d70ja2cw.wasm' for System.Runtime.InteropServices.y2d70ja2cw.wasm failed 0 TypeError: Failed to fetch
✓ Logged in and redirected to dashboard
BAD HTTP: [33m400[39m http://localhost:5001/taxbaik/api/auth/login
CONSOLE: error Failed to load resource: the server responded with a status of 400 (Bad Request)
localStorage has accessToken: true
Current URL after login: http://localhost:5001/taxbaik/admin/dashboard
Network requests: [{"url":"http://localhost:5001/taxbaik/admin/login","status":200},{"url":"http://localhost:5001/taxbaik/admin/login","status":200},{"url":"http://localhost:5001/taxbaik/admin/dashboard","status":200},{"url":"http://localhost:5001/taxbaik/admin/js/admin-session.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/blazor.webassembly.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/css/admin.css","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/dotnet.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_content/Microsoft.DotNet.HotReload.WebAssembly.Browser/Microsoft.DotNet.HotReload.WebAssembly.Browser.99zm1jdh75.lib.module.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/dotnet.native.2qba9g5fwn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.InteropServices.JavaScript.0uujcsvtme.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/FluentValidation.fvee6lf8f0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Authorization.wp5b4xwrtz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Application.nk6b00sehx.pdb","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/dotnet.runtime.o0qy896u8v.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/dotnet.native.xanz2e7ksm.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.Forms.ec8b0m8vzy.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.Authorization.qjl31ej8ln.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.4payhwuyuh.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.Web.j6d7zpk03e.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.CoreLib.8ubjv9s18t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Metadata.bhaqktdl3q.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.WebAssembly.jt9rzx6tc4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Domain.slcej1gg8j.pdb","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.DotNet.HotReload.WebAssembly.Browser.ttbwk6q8rt.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.s6epnzhbd8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.Abstractions.wa2ojg94fi.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.Binder.l7o5knh4f1.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.FileExtensions.ke1t9ns7xl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Bcl.Cryptography.3pa69hqvhn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.Json.k1hilos7yb.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.DependencyInjection.nun950pku8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.q6idsb19uh.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Diagnostics.f7zn8s1thp.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Caching.Abstractions.vvlexwbaez.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Diagnostics.Abstractions.s62vewhs76.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.FileProviders.Abstractions.woov9lkdcy.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.FileSystemGlobbing.jnewm5d55t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Http.0emfrzn4z9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.FileProviders.Physical.4uvrzrkcx9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Localization.Abstractions.pyaf3dbk0g.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Logging.Abstractions.62zefycurg.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Logging.xispqyz68y.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Options.bs7sofzszu.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Localization.5atztr4g6x.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Options.ConfigurationExtensions.i2sp1sqcbf.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Primitives.ub9q6nskn2.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Validation.y25xlv978u.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.IdentityModel.Abstractions.psm3y4qcdp.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.IdentityModel.JsonWebTokens.n0dq0d579y.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.IdentityModel.Logging.r9vixnozb0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.JSInterop.zhfbg74p0e.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IdentityModel.Tokens.Jwt.3z2p0190ll.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.CSharp.j06echzfpz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.JSInterop.WebAssembly.vi1uw8swyy.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.VisualBasic.r1r1o64guk.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/MudBlazor.d6wkksyg7d.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.IdentityModel.Tokens.re3chwnju5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Win32.Primitives.5nko60lje3.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.VisualBasic.Core.h2kvac5o7p.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.AppContext.c2z2iszv5a.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Win32.Registry.lmhf2szmg9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Buffers.jv7wyzqgeh.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.Concurrent.qyjrh4n7wg.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.Immutable.6nfqc1y6mx.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.NonGeneric.oye06xq4bj.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.4u69gysy90.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.Specialized.ua3ga4ojzm.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.Annotations.fu60omoy5j.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.EventBasedAsync.6se1ltc450.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.DataAnnotations.b05dlz1h33.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.Primitives.lzg3p2fcb8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.u8ypsaemfu.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Configuration.gkfiw2lgu6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.TypeConverter.pua8doket6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Core.lhxt5qhoq6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Data.Common.eqtn3ssyme.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Console.p023t1evip.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Contracts.dck23rphvl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Data.d0h61hksxr.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Debug.xp56ua2jd2.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Data.DataSetExtensions.zp6ucti1as.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.FileVersionInfo.8kwccfatn9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.DiagnosticSource.kzyp7dz13i.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Process.pbsvhgaqld.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.TextWriterTraceListener.f9a4ca75f9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.StackTrace.uosmk512ff.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Tools.r58uhp06u4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Tracing.uyjvspoaee.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Drawing.nem9gi6fos.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Formats.Asn1.9bedxuqoe2.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Dynamic.Runtime.4xdpjnpw4n.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Formats.Tar.hjwgs8goh9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Globalization.de5yfe377i.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Globalization.Calendars.qqu4d9h6d4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Globalization.Extensions.1d3dstrmml.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.TraceSource.74aa6mybdk.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Drawing.Primitives.ygagw4cllm.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.DriveInfo.0o22a9akm7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Compression.mbpybl62de.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Compression.Brotli.s6yhzy6ra0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Compression.ZipFile.5ulbwi9soi.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.AccessControl.olg38ln9cn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.Watcher.b81ylq3lid.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.m0wrikzu53.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.Primitives.efika37m4r.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.MemoryMappedFiles.1qwcduyngl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.IsolatedStorage.moxgx46g2v.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Pipelines.8cw6ik4s41.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Compression.FileSystem.8e8pwcj0r8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.UnmanagedMemoryStream.09whssgw8a.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Pipes.AccessControl.yejz5yzur4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.lavhpdycer.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.AsyncEnumerable.a9leffpn15.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.Expressions.r1c6atm1cw.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.Parallel.g7xw2v7b07.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Pipes.aovxgtgqh6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.Queryable.sdb7n2mhn5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.rskygq9p37.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Memory.i4ezuafn9k.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Http.Json.zy8lvi4mlm.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Http.c5n0c1iaa3.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.HttpListener.bzgrr803nf.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Mail.tbh6kodhoc.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.NetworkInformation.6lqpzaxhm8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.NameResolution.97kbgrqa3x.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Ping.8imioclqo5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Primitives.06opecf70b.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Quic.m8fkmwx2e2.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Security.7zwmva046j.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.ServerSentEvents.c4uhw1iihb.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Sockets.3pbfy2myku.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebClient.0vydlgc6dw.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.ServicePoint.jysyz6pe5n.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebProxy.zmhtx343lv.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebHeaderCollection.7o9dkw6pk7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Requests.r215bg21jb.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebSockets.Client.2f3nip0afr.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebSockets.gm6qkoxxpi.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Numerics.ig9uomhcbs.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ObjectModel.snprhmugxx.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Numerics.Vectors.95xmo86x7v.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.4qaklzza4n.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.DispatchProxy.upd872z9tl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.DataContractSerialization.gjeod45zn6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.Xml.Linq.lr5v2oiugs.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.Xml.wtrgu5mtlc.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.Uri.z6jswaywn8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Extensions.sognfb51go.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Emit.mrh9tkt04t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Metadata.4temtjmiid.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Primitives.rla5yzpm68.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Emit.ILGeneration.g7zocluvg9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Emit.Lightweight.dg35e9lw3s.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.d59jdh5una.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.TypeExtensions.eziqyy81b1.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Resources.ResourceManager.78ixpnkxwz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Resources.Reader.42xaf3wy3o.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Resources.Writer.j5qafotg8o.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.CompilerServices.Unsafe.4s8vka7mb8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Extensions.x9isqqr7mp.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.InteropServices.RuntimeInformation.zydo3g4f27.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.CompilerServices.VisualC.7dilrkv0n5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Handles.gmejdz8b1i.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.InteropServices.y2d70ja2cw.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.Formatters.kp04s3jyn3.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Loader.3t71kb21wu.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Intrinsics.kmq2apj5l0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Numerics.n8gwbfvruj.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.Primitives.ktqshul6zq.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.csube7l7j7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.AccessControl.l725whzq2q.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.Json.w5ytzloqtn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.Xml.zxalj6oi7a.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.oqtdyhn9ex.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Algorithms.xptci9gx2e.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Encoding.mjrnxqi695.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Csp.dh1ommb4jg.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Claims.ls4mvh9izv.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Cng.cwmo3bkk7r.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Primitives.3u8l6vjobk.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.OpenSsl.bwa2csm6hl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.X509Certificates.ha8unomn85.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.k3w9v7ue50.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Principal.Windows.xecxe1aqkj.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Principal.60u8ec2sxl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.SecureString.eim2t43py4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ServiceProcess.isfmih530m.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.n9s9f533o4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ServiceModel.Web.0gnfditp44.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Encoding.CodePages.uujl0fau9d.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Encoding.Extensions.mr1rkcnv13.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Encoding.g0sgi8atoh.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Encodings.Web.mb9atwjqsn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Json.hphxl2km4u.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.RegularExpressions.6a9cxw2dq7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.AccessControl.m54ktoxm2s.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Tasks.Dataflow.tnzumxbiut.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Overlapped.jgaekt0s0k.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Channels.v1qpu5ozcz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Tasks.Extensions.abjpbegqw7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Tasks.Parallel.uopu4j1ll0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Tasks.f8ooi2bwxq.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Timer.n7hcp5usgn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.ThreadPool.sqmy5jnljd.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Thread.icdc9s98z0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Transactions.vnrbvecmwd.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Transactions.Local.q4k65jbhaz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.nxaopq8r9v.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Windows.brg453rzbv.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ValueTuple.6b0gmpb390.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.ReaderWriter.91p1gp9557.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Web.HttpUtility.cxyvb282ci.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Web.aeo7nmvkid.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.Linq.nmrhj7elbr.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.Serialization.ckvc8z5y7y.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XmlDocument.kp4g8oyokz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XPath.mto1j3qx1a.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XmlSerializer.1mt75y9wos.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XDocument.yqi6lt4nme.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XPath.XDocument.3ukl29h35t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.5s4754zdrc.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/mscorlib.d4fuuhbiqe.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Application.b8m3bwj182.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.802vhulao5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/netstandard.qwxk4mrnbx.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Domain.7nnvbd3g2t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/icudt_EFIGS.tptq2av103.dat","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Web.Client.4m5ta01x14.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/WindowsBase.8yv9o2iuhl.wasm","status":200}]
[Browser Console] [info] Debugging hotkey: Shift+Alt+D (when application has focus)
  ✓    6 [Desktop Chrome] › tests\e2e\admin-smoke.spec.ts:10:7 › admin smoke › @smoke logs in and lands on dashboard without circuit errors (22.0s)
  ✓   10 [Desktop Chrome] › tests\e2e\contact-submit.spec.ts:9:7 › contact submit › creates an inquiry through the public API (708ms)
  ✘    9 [Desktop Chrome] › tests\e2e\blog-validation.spec.ts:9:5 › Blog Management Full Flow - Real Domain Validation (19.9s)
  ✘    1 [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:18:7 › admin CRM pages › TaxProfiles page loads with grid and add button (30.9s)
  -   13 [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:28:7 › admin CRM pages › TaxFilingSchedules page loads with D-day tracking
  -   14 [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:38:7 › admin CRM pages › Contracts page loads with MRR display
  -   15 [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:48:7 › admin CRM pages › ConsultingActivities page loads with activity records
  -   16 [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:58:7 › admin CRM pages › RevenueTrackings page loads with payment status tracking
  -   17 [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:68:7 › admin CRM pages › CRM navigation group is visible and expandable
  -   18 [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:90:7 › admin CRM pages › TaxProfiles editor panel is visible on add button click
  -   19 [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:99:7 › admin CRM pages › No console errors on CRM page navigation
  -   20 [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:131:7 › admin CRM pages › TaxProfiles form displays valid business type combo choices
  -   21 [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:155:7 › admin CRM pages › TaxFilingSchedules form displays filing type combo choices
  -   22 [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:178:7 › admin CRM pages › Contracts form displays service type combo choices
✓ Blog list page loaded
✓ Blog CRUD flow complete
  ✘    7 [Desktop Chrome] › tests\e2e\admin-responsive.spec.ts:21:7 › admin responsive design (admin account) › dashboard loads correctly on all viewports (41.3s)
  ✓    5 [Desktop Chrome] › tests\e2e\blog-crud.spec.ts:9:7 › blog CRUD operations › complete blog creation, read, update, delete flow (44.8s)
=== 1단계: 홈페이지 접속 ===
  ✘   12 [Desktop Chrome] › tests\e2e\dashboard-check.spec.ts:4:5 › check dashboard metrics (10.0s)
✓ 홈페이지 로드됨
✓ 페이지 제목: 백원숙 세무회계 | 부가가치세 1기 확정신고 — 지금 상담하세요

=== 2단계: 로그인 페이지 이동 ===
✓ 로그인 페이지 접속

=== 3단계: 로그인 수행 ===
✓ 입력: admin

=== 4단계: 대시보드 확인 ===
✓ 대시보드 URL 도착
✓ 로그아웃 버튼 표시 (인증 완료)
  ✘   11 [Desktop Chrome] › tests\e2e\contact-submit.spec.ts:27:7 › contact submit › creates an inquiry and shows it in admin list (32.2s)
🔐 Logging in...
  ✓   26 [Desktop Chrome] › tests\e2e\contact-submit.spec.ts:58:7 › contact submit › submitting the public Contact.cshtml form shows the success message (3.4s)
  ✘   27 [Desktop Chrome] › tests\e2e\full-admin-pages.spec.ts:5:5 › production: verify all admin pages load correctly (4.3s)
  ✘   29 [Desktop Chrome] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics (2.6s)
  ✘    2 [Desktop Chrome] › tests\e2e\admin-login.spec.ts:8:7 › admin authentication › logs in through the real browser UI and reaches dashboard (1.3m)
  ✓   30 [Desktop Chrome] › tests\e2e\route-isolation.spec.ts:6:7 › route isolation › public home does not boot the admin app (2.4s)
  ✘   32 [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:18:7 › admin CRM pages › TaxProfiles page loads with grid and add button (8ms)
  -   33 [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:28:7 › admin CRM pages › TaxFilingSchedules page loads with D-day tracking
  -   34 [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:38:7 › admin CRM pages › Contracts page loads with MRR display
  -   35 [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:48:7 › admin CRM pages › ConsultingActivities page loads with activity records
  -   36 [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:58:7 › admin CRM pages › RevenueTrackings page loads with payment status tracking
  -   37 [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:68:7 › admin CRM pages › CRM navigation group is visible and expandable
  -   38 [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:90:7 › admin CRM pages › TaxProfiles editor panel is visible on add button click
  -   39 [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:99:7 › admin CRM pages › No console errors on CRM page navigation
  -   40 [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:131:7 › admin CRM pages › TaxProfiles form displays valid business type combo choices
  -   41 [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:155:7 › admin CRM pages › TaxFilingSchedules form displays filing type combo choices
  -   42 [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:178:7 › admin CRM pages › Contracts form displays service type combo choices
  ✓   31 [Desktop Chrome] › tests\e2e\route-isolation.spec.ts:14:7 › route isolation › admin login boots the admin app under the admin base path (976ms)
  ✘   24 [Desktop Chrome] › tests\e2e\admin-responsive.spec.ts:85:7 › admin responsive design (admin account) › drawer responsiveness on mobile (35.0s)
  ✘   43 [iPhone 12] › tests\e2e\admin-login.spec.ts:8:7 › admin authentication › logs in through the real browser UI and reaches dashboard (10ms)
  ✘   44 [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:10:7 › Admin Pages E2E (Manual) › Login page loads (6ms)
  ✘   45 [iPhone 12] › tests\e2e\admin-password-change.spec.ts:10:7 › admin password change › changes password through the real admin UI (9ms)
  ✘   47 [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:16:7 › Admin Pages E2E (Manual) › Dashboard page loads (14ms)
  ✘   48 [iPhone 12] › tests\e2e\admin-responsive.spec.ts:21:7 › admin responsive design (admin account) › dashboard loads correctly on all viewports (10ms)
  ✘   49 [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:31:7 › Admin Pages E2E (Manual) › Blog page loads (21ms)
  ✘    4 [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:10:7 › Admin Pages E2E (Manual) › Login page loads (1.5m)
  ✘   50 [iPhone 12] › tests\e2e\admin-responsive.spec.ts:85:7 › admin responsive design (admin account) › drawer responsiveness on mobile (6ms)
  ✘    8 [Desktop Chrome] › tests\e2e\blog-seo.spec.ts:6:7 › blog seo › exposes title description and canonical on blog detail pages (1.6m)
  ✘   51 [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:46:7 › Admin Pages E2E (Manual) › Inquiry page loads (8ms)
  ✘   53 [iPhone 12] › tests\e2e\admin-responsive.spec.ts:103:7 › admin responsive design (admin account) › form inputs are accessible on mobile (11ms)
  ✘   54 [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:61:7 › Admin Pages E2E (Manual) › CRM pages load (9ms)
  ✘   55 [iPhone 12] › tests\e2e\admin-smoke.spec.ts:10:7 › admin smoke › @smoke logs in and lands on dashboard without circuit errors (11ms)
  ✘   56 [iPhone 12] › tests\e2e\admin-responsive.spec.ts:126:7 › admin responsive design (admin account) › buttons are clickable on all viewports (9ms)
  ✘   57 [iPhone 12] › tests\e2e\blog-crud.spec.ts:9:7 › blog CRUD operations › complete blog creation, read, update, delete flow (9ms)
  ✘   58 [iPhone 12] › tests\e2e\blog-seo.spec.ts:6:7 › blog seo › exposes title description and canonical on blog detail pages (8ms)
  ✘   59 [iPhone 12] › tests\e2e\blog-validation.spec.ts:9:5 › Blog Management Full Flow - Real Domain Validation (9ms)
  ✘   61 [iPhone 12] › tests\e2e\dashboard-check.spec.ts:4:5 › check dashboard metrics (8ms)
  ✓   60 [iPhone 12] › tests\e2e\contact-submit.spec.ts:9:7 › contact submit › creates an inquiry through the public API (400ms)
  ✘   62 [iPhone 12] › tests\e2e\contact-submit.spec.ts:27:7 › contact submit › creates an inquiry and shows it in admin list (4ms)
  ✘   63 [iPhone 12] › tests\e2e\full-admin-pages.spec.ts:5:5 › production: verify all admin pages load correctly (10ms)
  ✘   64 [iPhone 12] › tests\e2e\full-user-flow.spec.ts:6:7 › 프로덕션 사용자 흐름 테스트 › 홈페이지 → 로그인 → 대시보드 → 블로그 CRUD (10ms)
  ✘   65 [iPhone 12] › tests\e2e\contact-submit.spec.ts:58:7 › contact submit › submitting the public Contact.cshtml form shows the success message (10ms)
  ✘   66 [iPhone 12] › tests\e2e\inquiry-detail.spec.ts:9:7 › inquiry detail › shows the created inquiry and admin action links (13ms)
  ✘   67 [iPhone 12] › tests\e2e\login-test.spec.ts:8:5 › Admin Login Page - prerendered HTML contains the form before JS runs (193ms)
  ✘   68 [iPhone 12] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics (12ms)
  ✘   69 [iPhone 12] › tests\e2e\route-isolation.spec.ts:6:7 › route isolation › public home does not boot the admin app (10ms)
  ✘   70 [iPhone 12] › tests\e2e\login-test.spec.ts:23:5 › Admin Login Page - Full Flow Test (12ms)
  ✘   72 [iPhone 12] › tests\e2e\route-isolation.spec.ts:14:7 › route isolation › admin login boots the admin app under the admin base path (30ms)
  ✘   46 [Desktop Chrome] › tests\e2e\admin-responsive.spec.ts:103:7 › admin responsive design (admin account) › form inputs are accessible on mobile (34.7s)
Username filled: true, Password filled: true
localStorage has accessToken: true
Current URL after login: http://localhost:5001/taxbaik/admin/dashboard
Network requests: [{"url":"http://localhost:5001/taxbaik/admin/login","status":200},{"url":"http://localhost:5001/taxbaik/admin/login","status":200},{"url":"http://localhost:5001/taxbaik/admin/dashboard","status":200},{"url":"http://localhost:5001/taxbaik/admin/css/admin.css","status":200},{"url":"http://localhost:5001/taxbaik/admin/js/admin-session.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/blazor.webassembly.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/dotnet.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_content/Microsoft.DotNet.HotReload.WebAssembly.Browser/Microsoft.DotNet.HotReload.WebAssembly.Browser.99zm1jdh75.lib.module.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/dotnet.native.2qba9g5fwn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/dotnet.runtime.o0qy896u8v.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/dotnet.native.xanz2e7ksm.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.InteropServices.JavaScript.0uujcsvtme.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Application.nk6b00sehx.pdb","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/FluentValidation.fvee6lf8f0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Domain.slcej1gg8j.pdb","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.CoreLib.8ubjv9s18t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Authorization.wp5b4xwrtz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.4payhwuyuh.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.Authorization.qjl31ej8ln.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.Forms.ec8b0m8vzy.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.Web.j6d7zpk03e.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.WebAssembly.jt9rzx6tc4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Bcl.Cryptography.3pa69hqvhn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.DotNet.HotReload.WebAssembly.Browser.ttbwk6q8rt.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Metadata.bhaqktdl3q.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Caching.Abstractions.vvlexwbaez.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.s6epnzhbd8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.Abstractions.wa2ojg94fi.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.Binder.l7o5knh4f1.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.Json.k1hilos7yb.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.FileExtensions.ke1t9ns7xl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.DependencyInjection.nun950pku8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.q6idsb19uh.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Diagnostics.Abstractions.s62vewhs76.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Diagnostics.f7zn8s1thp.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.FileProviders.Abstractions.woov9lkdcy.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.FileProviders.Physical.4uvrzrkcx9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.FileSystemGlobbing.jnewm5d55t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Localization.5atztr4g6x.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Localization.Abstractions.pyaf3dbk0g.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Http.0emfrzn4z9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Logging.xispqyz68y.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Options.bs7sofzszu.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Logging.Abstractions.62zefycurg.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Validation.y25xlv978u.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.IdentityModel.Abstractions.psm3y4qcdp.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.IdentityModel.JsonWebTokens.n0dq0d579y.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Options.ConfigurationExtensions.i2sp1sqcbf.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.IdentityModel.Tokens.re3chwnju5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Primitives.ub9q6nskn2.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.JSInterop.zhfbg74p0e.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.IdentityModel.Logging.r9vixnozb0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.JSInterop.WebAssembly.vi1uw8swyy.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IdentityModel.Tokens.Jwt.3z2p0190ll.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.CSharp.j06echzfpz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.VisualBasic.Core.h2kvac5o7p.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.VisualBasic.r1r1o64guk.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Win32.Primitives.5nko60lje3.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Win32.Registry.lmhf2szmg9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.AppContext.c2z2iszv5a.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Buffers.jv7wyzqgeh.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.Concurrent.qyjrh4n7wg.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.Immutable.6nfqc1y6mx.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.NonGeneric.oye06xq4bj.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.Specialized.ua3ga4ojzm.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.4u69gysy90.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.Annotations.fu60omoy5j.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.DataAnnotations.b05dlz1h33.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.EventBasedAsync.6se1ltc450.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/MudBlazor.d6wkksyg7d.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.Primitives.lzg3p2fcb8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.u8ypsaemfu.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.TypeConverter.pua8doket6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Console.p023t1evip.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Configuration.gkfiw2lgu6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Core.lhxt5qhoq6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Data.DataSetExtensions.zp6ucti1as.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Data.d0h61hksxr.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Contracts.dck23rphvl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Debug.xp56ua2jd2.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Data.Common.eqtn3ssyme.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.FileVersionInfo.8kwccfatn9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Process.pbsvhgaqld.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.DiagnosticSource.kzyp7dz13i.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.TextWriterTraceListener.f9a4ca75f9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Tools.r58uhp06u4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.StackTrace.uosmk512ff.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.TraceSource.74aa6mybdk.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Drawing.nem9gi6fos.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Drawing.Primitives.ygagw4cllm.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Dynamic.Runtime.4xdpjnpw4n.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Formats.Asn1.9bedxuqoe2.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Tracing.uyjvspoaee.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Globalization.Calendars.qqu4d9h6d4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Formats.Tar.hjwgs8goh9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Globalization.de5yfe377i.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Compression.Brotli.s6yhzy6ra0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Globalization.Extensions.1d3dstrmml.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Compression.ZipFile.5ulbwi9soi.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Compression.mbpybl62de.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Compression.FileSystem.8e8pwcj0r8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.DriveInfo.0o22a9akm7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.Primitives.efika37m4r.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.Watcher.b81ylq3lid.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.AccessControl.olg38ln9cn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.m0wrikzu53.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.IsolatedStorage.moxgx46g2v.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.MemoryMappedFiles.1qwcduyngl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Pipelines.8cw6ik4s41.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Pipes.AccessControl.yejz5yzur4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Pipes.aovxgtgqh6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.UnmanagedMemoryStream.09whssgw8a.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.lavhpdycer.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.Parallel.g7xw2v7b07.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.Expressions.r1c6atm1cw.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.Queryable.sdb7n2mhn5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.AsyncEnumerable.a9leffpn15.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.rskygq9p37.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Memory.i4ezuafn9k.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Http.Json.zy8lvi4mlm.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.HttpListener.bzgrr803nf.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Http.c5n0c1iaa3.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.NameResolution.97kbgrqa3x.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.NetworkInformation.6lqpzaxhm8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Mail.tbh6kodhoc.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Quic.m8fkmwx2e2.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Ping.8imioclqo5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Requests.r215bg21jb.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Primitives.06opecf70b.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Security.7zwmva046j.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.ServicePoint.jysyz6pe5n.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Sockets.3pbfy2myku.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.ServerSentEvents.c4uhw1iihb.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebClient.0vydlgc6dw.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebHeaderCollection.7o9dkw6pk7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebProxy.zmhtx343lv.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebSockets.Client.2f3nip0afr.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebSockets.gm6qkoxxpi.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.4qaklzza4n.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Numerics.Vectors.95xmo86x7v.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Numerics.ig9uomhcbs.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.DataContractSerialization.gjeod45zn6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.Uri.z6jswaywn8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ObjectModel.snprhmugxx.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.DispatchProxy.upd872z9tl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.Xml.Linq.lr5v2oiugs.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Emit.ILGeneration.g7zocluvg9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.Xml.wtrgu5mtlc.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Emit.Lightweight.dg35e9lw3s.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Emit.mrh9tkt04t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Extensions.sognfb51go.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Primitives.rla5yzpm68.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Metadata.4temtjmiid.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.TypeExtensions.eziqyy81b1.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.d59jdh5una.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Resources.Reader.42xaf3wy3o.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Resources.ResourceManager.78ixpnkxwz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Resources.Writer.j5qafotg8o.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.CompilerServices.Unsafe.4s8vka7mb8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.CompilerServices.VisualC.7dilrkv0n5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Extensions.x9isqqr7mp.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Handles.gmejdz8b1i.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.InteropServices.RuntimeInformation.zydo3g4f27.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.InteropServices.y2d70ja2cw.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Intrinsics.kmq2apj5l0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Numerics.n8gwbfvruj.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Loader.3t71kb21wu.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.Formatters.kp04s3jyn3.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.Primitives.ktqshul6zq.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.Json.w5ytzloqtn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.Xml.zxalj6oi7a.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.oqtdyhn9ex.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.csube7l7j7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.AccessControl.l725whzq2q.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Claims.ls4mvh9izv.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Algorithms.xptci9gx2e.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Cng.cwmo3bkk7r.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Csp.dh1ommb4jg.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Encoding.mjrnxqi695.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.OpenSsl.bwa2csm6hl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Primitives.3u8l6vjobk.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.X509Certificates.ha8unomn85.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Principal.60u8ec2sxl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Principal.Windows.xecxe1aqkj.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.SecureString.eim2t43py4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.k3w9v7ue50.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.n9s9f533o4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ServiceModel.Web.0gnfditp44.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ServiceProcess.isfmih530m.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Encoding.Extensions.mr1rkcnv13.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Encoding.g0sgi8atoh.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Encodings.Web.mb9atwjqsn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Json.hphxl2km4u.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.RegularExpressions.6a9cxw2dq7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.AccessControl.m54ktoxm2s.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Encoding.CodePages.uujl0fau9d.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Channels.v1qpu5ozcz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Overlapped.jgaekt0s0k.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Tasks.Dataflow.tnzumxbiut.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Tasks.Extensions.abjpbegqw7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Tasks.Parallel.uopu4j1ll0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Tasks.f8ooi2bwxq.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.ThreadPool.sqmy5jnljd.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Thread.icdc9s98z0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.nxaopq8r9v.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Timer.n7hcp5usgn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Transactions.Local.q4k65jbhaz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Transactions.vnrbvecmwd.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ValueTuple.6b0gmpb390.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Web.HttpUtility.cxyvb282ci.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Web.aeo7nmvkid.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Windows.brg453rzbv.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.Linq.nmrhj7elbr.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.Serialization.ckvc8z5y7y.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.ReaderWriter.91p1gp9557.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XDocument.yqi6lt4nme.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XPath.XDocument.3ukl29h35t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XPath.mto1j3qx1a.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XmlDocument.kp4g8oyokz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XmlSerializer.1mt75y9wos.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.5s4754zdrc.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/WindowsBase.8yv9o2iuhl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.802vhulao5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/mscorlib.d4fuuhbiqe.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/netstandard.qwxk4mrnbx.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Application.b8m3bwj182.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Domain.7nnvbd3g2t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/icudt_EFIGS.tptq2av103.dat","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Web.Client.4m5ta01x14.wasm","status":200}]
  ✘   71 [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:18:7 › admin CRM pages › TaxProfiles page loads with grid and add button (16.6s)
  -   76 [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:28:7 › admin CRM pages › TaxFilingSchedules page loads with D-day tracking
  -   77 [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:38:7 › admin CRM pages › Contracts page loads with MRR display
  -   78 [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:48:7 › admin CRM pages › ConsultingActivities page loads with activity records
  -   79 [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:58:7 › admin CRM pages › RevenueTrackings page loads with payment status tracking
  -   80 [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:68:7 › admin CRM pages › CRM navigation group is visible and expandable
  -   81 [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:90:7 › admin CRM pages › TaxProfiles editor panel is visible on add button click
  -   82 [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:99:7 › admin CRM pages › No console errors on CRM page navigation
  -   83 [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:131:7 › admin CRM pages › TaxProfiles form displays valid business type combo choices
  -   84 [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:155:7 › admin CRM pages › TaxFilingSchedules form displays filing type combo choices
  -   85 [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:178:7 › admin CRM pages › Contracts form displays service type combo choices
  -   86 [iPad Pro] › tests\e2e\admin-password-change.spec.ts:10:7 › admin password change › changes password through the real admin UI
[Browser Console] [info] Debugging hotkey: Shift+Alt+D (when application has focus)
[Browser Console] [info] Debugging hotkey: Shift+Alt+D (when application has focus)
  ✘   25 [Desktop Chrome] › tests\e2e\inquiry-detail.spec.ts:9:7 › inquiry detail › shows the created inquiry and admin action links (1.7m)
  ✓   88 [iPad Pro] › tests\e2e\admin-smoke.spec.ts:10:7 › admin smoke › @smoke logs in and lands on dashboard without circuit errors (5.2s)
  ✘   75 [Desktop Chrome] › tests\e2e\admin-responsive.spec.ts:126:7 › admin responsive design (admin account) › buttons are clickable on all viewports (35.2s)
✓ Logged in and redirected to dashboard
  ✘   87 [iPad Pro] › tests\e2e\admin-responsive.spec.ts:21:7 › admin responsive design (admin account) › dashboard loads correctly on all viewports (34.0s)
  ✘   73 [iPad Pro] › tests\e2e\admin-login.spec.ts:8:7 › admin authentication › logs in through the real browser UI and reaches dashboard (1.1m)

=== 1단계: 로그인 페이지 이동 ===
✓ 페이지 로드: 관리자 로그인

=== 2단계: 로그인 수행 ===
✓ Blog list page loaded
✓ Blog CRUD flow complete
BAD HTTP: [33m400[39m http://localhost:5001/taxbaik/api/auth/login
CONSOLE: error Failed to load resource: the server responded with a status of 400 (Bad Request)
  ✓   89 [iPad Pro] › tests\e2e\blog-crud.spec.ts:9:7 › blog CRUD operations › complete blog creation, read, update, delete flow (39.6s)
  ✘   92 [iPad Pro] › tests\e2e\blog-validation.spec.ts:9:5 › Blog Management Full Flow - Real Domain Validation (5.1s)
  ✓   93 [iPad Pro] › tests\e2e\contact-submit.spec.ts:9:7 › contact submit › creates an inquiry through the public API (394ms)
  ✘   91 [iPad Pro] › tests\e2e\admin-responsive.spec.ts:85:7 › admin responsive design (admin account) › drawer responsiveness on mobile (34.7s)
  ✘   74 [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:10:7 › Admin Pages E2E (Manual) › Login page loads (1.5m)
  ✘   95 [iPad Pro] › tests\e2e\dashboard-check.spec.ts:4:5 › check dashboard metrics (13.5s)
🔐 Logging in...
  ✘   94 [iPad Pro] › tests\e2e\contact-submit.spec.ts:27:7 › contact submit › creates an inquiry and shows it in admin list (29.2s)
  ✘   98 [iPad Pro] › tests\e2e\full-admin-pages.spec.ts:5:5 › production: verify all admin pages load correctly (4.8s)
=== 1단계: 홈페이지 접속 ===
  ✓   99 [iPad Pro] › tests\e2e\contact-submit.spec.ts:58:7 › contact submit › submitting the public Contact.cshtml form shows the success message (3.8s)
✓ 홈페이지 로드됨
✓ 페이지 제목: 백원숙 세무회계 | 부가가치세 1기 확정신고 — 지금 상담하세요

=== 2단계: 로그인 페이지 이동 ===
✓ 로그인 페이지 접속

=== 3단계: 로그인 수행 ===
✓ 입력: admin

=== 4단계: 대시보드 확인 ===
✓ 대시보드 URL 도착
  ✘   28 [Desktop Chrome] › tests\e2e\login-test.spec.ts:8:5 › Admin Login Page - prerendered HTML contains the form before JS runs (92ms)
✓ 로그아웃 버튼 표시 (인증 완료)

=== 1단계: 로그인 페이지 방문 ===
  ✘   96 [iPad Pro] › tests\e2e\admin-responsive.spec.ts:103:7 › admin responsive design (admin account) › form inputs are accessible on mobile (35.4s)
✅ 페이지 제목: 관리자 로그인
✅ 페이지 길이: [33m8797[39m 바이트

=== 2단계: 로그인 필드 확인 ===
✅ 사용자명 필드: 보임 ✨
✅ 비밀번호 필드: 보임 ✨
✅ 로그인 버튼: 보임 ✨

=== 3단계: 로그인 입력 & 제출 ===
✅ 사용자명 입력: admin
✅ 비밀번호 입력: ••••••••
✅ 로그인 버튼 클릭

=== 4단계: 로그인 결과 대기 ===
  ✘   90 [iPad Pro] › tests\e2e\blog-seo.spec.ts:6:7 › blog seo › exposes title description and canonical on blog detail pages (1.5m)
  ✘   23 [Desktop Chrome] › tests\e2e\full-user-flow.spec.ts:6:7 › 프로덕션 사용자 흐름 테스트 › 홈페이지 → 로그인 → 대시보드 → 블로그 CRUD (35.8s)
  ✘  104 [iPad Pro] › tests\e2e\login-test.spec.ts:8:5 › Admin Login Page - prerendered HTML contains the form before JS runs (142ms)
⚠️  네비게이션 타임아웃 (이미 로그인됨 또는 리다이렉트 중)
✅ 최종 URL: http://localhost:5001/taxbaik/admin/login
✅ 로그인 성공! 대시보드로 이동됨

=== 5단계: 스크린샷 ===
✅ 증빙 저장

=== 🎯 테스트 결과 ===
✅ 페이지 로드: 성공
✅ 사용자명 필드: 렌더링됨
✅ 비밀번호 필드: 렌더링됨
✅ 로그인 버튼: 렌더링됨
  ✓  102 [Desktop Chrome] › tests\e2e\login-test.spec.ts:23:5 › Admin Login Page - Full Flow Test (19.9s)

=== 1단계: 로그인 페이지 방문 ===
✅ 페이지 제목: 관리자 로그인
✅ 페이지 길이: [33m8797[39m 바이트

=== 2단계: 로그인 필드 확인 ===
✅ 사용자명 필드: 보임 ✨
✅ 비밀번호 필드: 보임 ✨
✅ 로그인 버튼: 보임 ✨

=== 3단계: 로그인 입력 & 제출 ===
✅ 사용자명 입력: admin
✅ 비밀번호 입력: ••••••••
✅ 로그인 버튼 클릭

=== 4단계: 로그인 결과 대기 ===
  ✘  100 [iPad Pro] › tests\e2e\full-user-flow.spec.ts:6:7 › 프로덕션 사용자 흐름 테스트 › 홈페이지 → 로그인 → 대시보드 → 블로그 CRUD (39.3s)
  ✓  107 [iPad Pro] › tests\e2e\route-isolation.spec.ts:6:7 › route isolation › public home does not boot the admin app (5.4s)
  ✘   52 [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:16:7 › Admin Pages E2E (Manual) › Dashboard page loads (3.0m)
⚠️  네비게이션 타임아웃 (이미 로그인됨 또는 리다이렉트 중)
✅ 최종 URL: http://localhost:5001/taxbaik/admin/login
✅ 로그인 성공! 대시보드로 이동됨

=== 5단계: 스크린샷 ===
✅ 증빙 저장

=== 🎯 테스트 결과 ===
✅ 페이지 로드: 성공
✅ 사용자명 필드: 렌더링됨
✅ 비밀번호 필드: 렌더링됨
✅ 로그인 버튼: 렌더링됨
  ✓  108 [iPad Pro] › tests\e2e\route-isolation.spec.ts:14:7 › route isolation › admin login boots the admin app under the admin base path (1.7s)
  ✘  103 [iPad Pro] › tests\e2e\admin-responsive.spec.ts:126:7 › admin responsive design (admin account) › buttons are clickable on all viewports (35.0s)
  ✓  106 [iPad Pro] › tests\e2e\login-test.spec.ts:23:5 › Admin Login Page - Full Flow Test (21.2s)
  -  112 [Galaxy S9+] › tests\e2e\admin-password-change.spec.ts:10:7 › admin password change › changes password through the real admin UI
Username filled: true, Password filled: true
[Browser Console] [info] Debugging hotkey: Shift+Alt+D (when application has focus)
localStorage has accessToken: true
Current URL after login: http://localhost:5001/taxbaik/admin/dashboard
Network requests: [{"url":"http://localhost:5001/taxbaik/admin/login","status":200},{"url":"http://localhost:5001/taxbaik/admin/login","status":200},{"url":"http://localhost:5001/taxbaik/admin/dashboard","status":200},{"url":"http://localhost:5001/taxbaik/admin/css/admin.css","status":200},{"url":"http://localhost:5001/taxbaik/admin/js/admin-session.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/blazor.webassembly.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/dotnet.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_content/Microsoft.DotNet.HotReload.WebAssembly.Browser/Microsoft.DotNet.HotReload.WebAssembly.Browser.99zm1jdh75.lib.module.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/dotnet.native.2qba9g5fwn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/dotnet.native.xanz2e7ksm.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/dotnet.runtime.o0qy896u8v.js","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.InteropServices.JavaScript.0uujcsvtme.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Application.nk6b00sehx.pdb","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Authorization.wp5b4xwrtz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/FluentValidation.fvee6lf8f0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Domain.slcej1gg8j.pdb","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.CoreLib.8ubjv9s18t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.4payhwuyuh.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.Forms.ec8b0m8vzy.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.Authorization.qjl31ej8ln.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.Web.j6d7zpk03e.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Components.WebAssembly.jt9rzx6tc4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.AspNetCore.Metadata.bhaqktdl3q.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Bcl.Cryptography.3pa69hqvhn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.DotNet.HotReload.WebAssembly.Browser.ttbwk6q8rt.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Caching.Abstractions.vvlexwbaez.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.Abstractions.wa2ojg94fi.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.s6epnzhbd8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.Binder.l7o5knh4f1.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.FileExtensions.ke1t9ns7xl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Configuration.Json.k1hilos7yb.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.DependencyInjection.nun950pku8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.q6idsb19uh.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Diagnostics.f7zn8s1thp.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Diagnostics.Abstractions.s62vewhs76.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Http.0emfrzn4z9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.FileProviders.Abstractions.woov9lkdcy.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Localization.5atztr4g6x.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.FileProviders.Physical.4uvrzrkcx9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.FileSystemGlobbing.jnewm5d55t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Localization.Abstractions.pyaf3dbk0g.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Logging.xispqyz68y.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Logging.Abstractions.62zefycurg.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Options.bs7sofzszu.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Options.ConfigurationExtensions.i2sp1sqcbf.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Primitives.ub9q6nskn2.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Extensions.Validation.y25xlv978u.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.IdentityModel.JsonWebTokens.n0dq0d579y.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.IdentityModel.Abstractions.psm3y4qcdp.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.IdentityModel.Logging.r9vixnozb0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.IdentityModel.Tokens.re3chwnju5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.JSInterop.zhfbg74p0e.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.JSInterop.WebAssembly.vi1uw8swyy.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.CSharp.j06echzfpz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.VisualBasic.r1r1o64guk.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IdentityModel.Tokens.Jwt.3z2p0190ll.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.VisualBasic.Core.h2kvac5o7p.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/MudBlazor.d6wkksyg7d.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Win32.Primitives.5nko60lje3.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/Microsoft.Win32.Registry.lmhf2szmg9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.AppContext.c2z2iszv5a.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Buffers.jv7wyzqgeh.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.Concurrent.qyjrh4n7wg.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.NonGeneric.oye06xq4bj.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.Specialized.ua3ga4ojzm.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.Immutable.6nfqc1y6mx.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Collections.4u69gysy90.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.Annotations.fu60omoy5j.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.DataAnnotations.b05dlz1h33.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.EventBasedAsync.6se1ltc450.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.Primitives.lzg3p2fcb8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.u8ypsaemfu.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ComponentModel.TypeConverter.pua8doket6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Configuration.gkfiw2lgu6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Console.p023t1evip.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Core.lhxt5qhoq6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Data.DataSetExtensions.zp6ucti1as.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Data.d0h61hksxr.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Data.Common.eqtn3ssyme.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Contracts.dck23rphvl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Debug.xp56ua2jd2.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.DiagnosticSource.kzyp7dz13i.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.FileVersionInfo.8kwccfatn9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Process.pbsvhgaqld.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.StackTrace.uosmk512ff.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.TextWriterTraceListener.f9a4ca75f9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.TraceSource.74aa6mybdk.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Tools.r58uhp06u4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Diagnostics.Tracing.uyjvspoaee.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Drawing.nem9gi6fos.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Drawing.Primitives.ygagw4cllm.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Dynamic.Runtime.4xdpjnpw4n.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Formats.Tar.hjwgs8goh9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Formats.Asn1.9bedxuqoe2.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Globalization.Extensions.1d3dstrmml.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Globalization.Calendars.qqu4d9h6d4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Globalization.de5yfe377i.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Compression.Brotli.s6yhzy6ra0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Compression.FileSystem.8e8pwcj0r8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Compression.mbpybl62de.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Compression.ZipFile.5ulbwi9soi.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.DriveInfo.0o22a9akm7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.AccessControl.olg38ln9cn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.Primitives.efika37m4r.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.m0wrikzu53.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.FileSystem.Watcher.b81ylq3lid.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.MemoryMappedFiles.1qwcduyngl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.IsolatedStorage.moxgx46g2v.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Pipelines.8cw6ik4s41.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Pipes.AccessControl.yejz5yzur4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.Pipes.aovxgtgqh6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.UnmanagedMemoryStream.09whssgw8a.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.IO.lavhpdycer.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.AsyncEnumerable.a9leffpn15.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.Parallel.g7xw2v7b07.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.Expressions.r1c6atm1cw.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.Queryable.sdb7n2mhn5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Memory.i4ezuafn9k.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Http.Json.zy8lvi4mlm.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.HttpListener.bzgrr803nf.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.NameResolution.97kbgrqa3x.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Http.c5n0c1iaa3.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Linq.rskygq9p37.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.NetworkInformation.6lqpzaxhm8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Ping.8imioclqo5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Primitives.06opecf70b.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Mail.tbh6kodhoc.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Quic.m8fkmwx2e2.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Requests.r215bg21jb.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Security.7zwmva046j.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.ServerSentEvents.c4uhw1iihb.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.ServicePoint.jysyz6pe5n.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.Sockets.3pbfy2myku.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebClient.0vydlgc6dw.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebHeaderCollection.7o9dkw6pk7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebProxy.zmhtx343lv.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Numerics.Vectors.95xmo86x7v.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebSockets.Client.2f3nip0afr.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.4qaklzza4n.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Net.WebSockets.gm6qkoxxpi.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Numerics.ig9uomhcbs.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ObjectModel.snprhmugxx.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.Xml.Linq.lr5v2oiugs.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.Uri.z6jswaywn8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.DataContractSerialization.gjeod45zn6.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.DispatchProxy.upd872z9tl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Private.Xml.wtrgu5mtlc.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Emit.ILGeneration.g7zocluvg9.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Emit.mrh9tkt04t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Emit.Lightweight.dg35e9lw3s.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Extensions.sognfb51go.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Metadata.4temtjmiid.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.Primitives.rla5yzpm68.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.TypeExtensions.eziqyy81b1.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Resources.Reader.42xaf3wy3o.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Reflection.d59jdh5una.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Resources.ResourceManager.78ixpnkxwz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Resources.Writer.j5qafotg8o.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.CompilerServices.Unsafe.4s8vka7mb8.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.CompilerServices.VisualC.7dilrkv0n5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Extensions.x9isqqr7mp.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Handles.gmejdz8b1i.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.InteropServices.RuntimeInformation.zydo3g4f27.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Loader.3t71kb21wu.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.InteropServices.y2d70ja2cw.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Intrinsics.kmq2apj5l0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Numerics.n8gwbfvruj.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.Json.w5ytzloqtn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.Formatters.kp04s3jyn3.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.Primitives.ktqshul6zq.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.Xml.zxalj6oi7a.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.AccessControl.l725whzq2q.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.csube7l7j7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Runtime.Serialization.oqtdyhn9ex.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Claims.ls4mvh9izv.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Csp.dh1ommb4jg.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Algorithms.xptci9gx2e.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Cng.cwmo3bkk7r.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Encoding.mjrnxqi695.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.Primitives.3u8l6vjobk.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.OpenSsl.bwa2csm6hl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.X509Certificates.ha8unomn85.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Principal.Windows.xecxe1aqkj.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Cryptography.k3w9v7ue50.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.Principal.60u8ec2sxl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.SecureString.eim2t43py4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Security.n9s9f533o4.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ServiceModel.Web.0gnfditp44.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ServiceProcess.isfmih530m.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Encoding.g0sgi8atoh.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Encoding.Extensions.mr1rkcnv13.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Encoding.CodePages.uujl0fau9d.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Encodings.Web.mb9atwjqsn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.Json.hphxl2km4u.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.AccessControl.m54ktoxm2s.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Text.RegularExpressions.6a9cxw2dq7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Channels.v1qpu5ozcz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Overlapped.jgaekt0s0k.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Tasks.Dataflow.tnzumxbiut.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Tasks.Extensions.abjpbegqw7.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Tasks.Parallel.uopu4j1ll0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Thread.icdc9s98z0.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Tasks.f8ooi2bwxq.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.ThreadPool.sqmy5jnljd.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.nxaopq8r9v.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Threading.Timer.n7hcp5usgn.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Transactions.Local.q4k65jbhaz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Transactions.vnrbvecmwd.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.ValueTuple.6b0gmpb390.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Web.aeo7nmvkid.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Web.HttpUtility.cxyvb282ci.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Windows.brg453rzbv.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.Linq.nmrhj7elbr.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.Serialization.ckvc8z5y7y.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.ReaderWriter.91p1gp9557.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XPath.XDocument.3ukl29h35t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XDocument.yqi6lt4nme.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XmlDocument.kp4g8oyokz.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XPath.mto1j3qx1a.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.XmlSerializer.1mt75y9wos.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.Xml.5s4754zdrc.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/System.802vhulao5.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/WindowsBase.8yv9o2iuhl.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/mscorlib.d4fuuhbiqe.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/netstandard.qwxk4mrnbx.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Application.b8m3bwj182.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Domain.7nnvbd3g2t.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/TaxBaik.Web.Client.4m5ta01x14.wasm","status":200},{"url":"http://localhost:5001/taxbaik/admin/_framework/icudt_EFIGS.tptq2av103.dat","status":200}]
[Browser Console] [info] Debugging hotkey: Shift+Alt+D (when application has focus)
  ✘  109 [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:18:7 › admin CRM pages › TaxProfiles page loads with grid and add button (19.4s)
  -  115 [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:28:7 › admin CRM pages › TaxFilingSchedules page loads with D-day tracking
  -  116 [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:38:7 › admin CRM pages › Contracts page loads with MRR display
  -  117 [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:48:7 › admin CRM pages › ConsultingActivities page loads with activity records
  -  118 [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:58:7 › admin CRM pages › RevenueTrackings page loads with payment status tracking
  -  119 [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:68:7 › admin CRM pages › CRM navigation group is visible and expandable
  -  120 [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:90:7 › admin CRM pages › TaxProfiles editor panel is visible on add button click
  -  121 [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:99:7 › admin CRM pages › No console errors on CRM page navigation
  -  122 [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:131:7 › admin CRM pages › TaxProfiles form displays valid business type combo choices
  -  123 [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:155:7 › admin CRM pages › TaxFilingSchedules form displays filing type combo choices
  -  124 [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:178:7 › admin CRM pages › Contracts form displays service type combo choices
  ✓  125 [Galaxy S9+] › tests\e2e\admin-smoke.spec.ts:10:7 › admin smoke › @smoke logs in and lands on dashboard without circuit errors (5.4s)
✓ Logged in and redirected to dashboard
  ✘  114 [Galaxy S9+] › tests\e2e\admin-responsive.spec.ts:21:7 › admin responsive design (admin account) › dashboard loads correctly on all viewports (35.8s)
  ✘  101 [iPad Pro] › tests\e2e\inquiry-detail.spec.ts:9:7 › inquiry detail › shows the created inquiry and admin action links (1.7m)
✓ Blog list page loaded
✓ Logout successful
✓ Blog CRUD flow complete
  ✓  126 [Galaxy S9+] › tests\e2e\blog-crud.spec.ts:9:7 › blog CRUD operations › complete blog creation, read, update, delete flow (37.6s)

=== 1단계: 로그인 페이지 이동 ===
✓ 페이지 로드: 관리자 로그인

=== 2단계: 로그인 수행 ===
BAD HTTP: [33m400[39m http://localhost:5001/taxbaik/api/auth/login
CONSOLE: error Failed to load resource: the server responded with a status of 400 (Bad Request)
  ✘  113 [Galaxy S9+] › tests\e2e\admin-login.spec.ts:8:7 › admin authentication › logs in through the real browser UI and reaches dashboard (1.1m)
  ✓  130 [Galaxy S9+] › tests\e2e\contact-submit.spec.ts:9:7 › contact submit › creates an inquiry through the public API (379ms)
  ✘  127 [Galaxy S9+] › tests\e2e\admin-responsive.spec.ts:85:7 › admin responsive design (admin account) › drawer responsiveness on mobile (34.9s)
  ✘  111 [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:10:7 › Admin Pages E2E (Manual) › Login page loads (1.5m)
  ✘  131 [Galaxy S9+] › tests\e2e\contact-submit.spec.ts:27:7 › contact submit › creates an inquiry and shows it in admin list (28.2s)
  ✘   97 [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:16:7 › Admin Pages E2E (Manual) › Dashboard page loads (3.0m)
  ✘  132 [Galaxy S9+] › tests\e2e\admin-responsive.spec.ts:103:7 › admin responsive design (admin account) › form inputs are accessible on mobile (35.0s)
  ✘  128 [Galaxy S9+] › tests\e2e\blog-seo.spec.ts:6:7 › blog seo › exposes title description and canonical on blog detail pages (1.5m)
  ✘  105 [iPad Pro] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics (3.6s)
🔐 Logging in...
  ✘  137 [Galaxy S9+] › tests\e2e\dashboard-check.spec.ts:4:5 › check dashboard metrics (13.2s)
  ✘  136 [Galaxy S9+] › tests\e2e\admin-responsive.spec.ts:126:7 › admin responsive design (admin account) › buttons are clickable on all viewports (38.6s)
  ✘  138 [Galaxy S9+] › tests\e2e\full-admin-pages.spec.ts:5:5 › production: verify all admin pages load correctly (5.4s)
=== 1단계: 홈페이지 접속 ===
✓ 홈페이지 로드됨
✓ 페이지 제목: 백원숙 세무회계 | 부가가치세 1기 확정신고 — 지금 상담하세요

=== 2단계: 로그인 페이지 이동 ===
✓ 로그인 페이지 접속

=== 3단계: 로그인 수행 ===
✓ 입력: admin

=== 4단계: 대시보드 확인 ===
✓ 대시보드 URL 도착
✓ 로그아웃 버튼 표시 (인증 완료)
  ✘  110 [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:31:7 › Admin Pages E2E (Manual) › Blog page loads (3.0m)
  ✘  139 [Galaxy S9+] › tests\e2e\full-user-flow.spec.ts:6:7 › 프로덕션 사용자 흐름 테스트 › 홈페이지 → 로그인 → 대시보드 → 블로그 CRUD (36.5s)
  ✘  143 [Galaxy S9+] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics (5.1s)
  ✘  144 [Galaxy S9+] › tests\e2e\route-isolation.spec.ts:6:7 › route isolation › public home does not boot the admin app (3.4s)
  ✓  145 [Galaxy S9+] › tests\e2e\route-isolation.spec.ts:14:7 › route isolation › admin login boots the admin app under the admin base path (1.4s)
  ✘  146 [Public Smoke] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics (2.4s)
  ✓  147 [Admin Smoke] › tests\e2e\admin-smoke.spec.ts:10:7 › admin smoke › @smoke logs in and lands on dashboard without circuit errors (4.5s)
  ✓  148 [Route Isolation] › tests\e2e\route-isolation.spec.ts:6:7 › route isolation › public home does not boot the admin app (2.1s)
  ✓  149 [Route Isolation] › tests\e2e\route-isolation.spec.ts:14:7 › route isolation › admin login boots the admin app under the admin base path (782ms)
  ✘  129 [Galaxy S9+] › tests\e2e\blog-validation.spec.ts:9:5 › Blog Management Full Flow - Real Domain Validation (4.6s)
  ✘  133 [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:16:7 › Admin Pages E2E (Manual) › Dashboard page loads (3.0m)
  ✘  134 [Galaxy S9+] › tests\e2e\contact-submit.spec.ts:58:7 › contact submit › submitting the public Contact.cshtml form shows the success message (3.0m)
  ✘  135 [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:31:7 › Admin Pages E2E (Manual) › Blog page loads (3.0m)
  ✘  141 [Galaxy S9+] › tests\e2e\login-test.spec.ts:8:5 › Admin Login Page - prerendered HTML contains the form before JS runs (146ms)

=== 1단계: 로그인 페이지 방문 ===
✅ 페이지 제목: 관리자 로그인
✅ 페이지 길이: [33m8797[39m 바이트

=== 2단계: 로그인 필드 확인 ===
✅ 사용자명 필드: 보임 ✨
✅ 비밀번호 필드: 보임 ✨
✅ 로그인 버튼: 보임 ✨

=== 3단계: 로그인 입력 & 제출 ===
✅ 사용자명 입력: admin
✅ 비밀번호 입력: ••••••••
✅ 로그인 버튼 클릭

=== 4단계: 로그인 결과 대기 ===
  ✘  142 [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:46:7 › Admin Pages E2E (Manual) › Inquiry page loads (3.0m)
⚠️  네비게이션 타임아웃 (이미 로그인됨 또는 리다이렉트 중)
✅ 최종 URL: http://localhost:5001/taxbaik/admin/login
✅ 로그인 성공! 대시보드로 이동됨

=== 5단계: 스크린샷 ===
✅ 증빙 저장

=== 🎯 테스트 결과 ===
✅ 페이지 로드: 성공
✅ 사용자명 필드: 렌더링됨
✅ 비밀번호 필드: 렌더링됨
✅ 로그인 버튼: 렌더링됨
  ✓  152 [Galaxy S9+] › tests\e2e\login-test.spec.ts:23:5 › Admin Login Page - Full Flow Test (18.4s)
  ✘  140 [Galaxy S9+] › tests\e2e\inquiry-detail.spec.ts:9:7 › inquiry detail › shows the created inquiry and admin action links (1.7m)
  ✘  150 [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:31:7 › Admin Pages E2E (Manual) › Blog page loads (3.0m)
  ✘  151 [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:46:7 › Admin Pages E2E (Manual) › Inquiry page loads (3.0m)
  ✘  153 [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:61:7 › Admin Pages E2E (Manual) › CRM pages load (3.0m)
  ✘  154 [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:46:7 › Admin Pages E2E (Manual) › Inquiry page loads (3.0m)
  ✘  155 [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:61:7 › Admin Pages E2E (Manual) › CRM pages load (3.0m)
  ✘  156 [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:61:7 › Admin Pages E2E (Manual) › CRM pages load (3.0m)


  1) [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:18:7 › admin CRM pages › TaxProfiles page loads with grid and add button 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoContainText[2m([22m[32mexpected[39m[2m)[22m failed

    Locator: locator('body')
    Timeout: 12000ms
    [32m- Expected substring  -  1[39m
    [31m+ Received string     + 40[39m

    [32m- 세무 프로필[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+         Menu[39m
    [31m+         TaxBaik[39m
    [31m+             세무회계 관리 대시보드[39m
    [31m+         공개 사이트[39m
    [31m+             로그아웃[39m
    [31m+[39m
    [31m+     T[39m
    [31m+         TaxBaik[39m
    [31m+             세무 운영 콘솔[39m
    [31m+[39m
    [31m+     개요<path d="M0 0h24v24H0z" fill="none"/><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"/>[39m
    [31m+                     대시보드[39m
    [31m+[39m
    [31m+     공개 사이트[39m
    [31m+         로그아웃요청한 페이지를 찾을 수 없습니다.[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+ [43m        [49m[39m
    [31m+             연결 재설정 중...[39m
    [31m+             새로운 버전으로 업데이트되었습니다.[39m
    [31m+             자동으로 페이지를 새로고침합니다. 잠시만 기다려주세요.[39m
    [31m+ [43m        [49m[39m
    [31m+ [43m    [49m[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+         관리자 화면을 불러오는 중 오류가 발생했습니다. 브라우저 콘솔 또는 서버 client-logs를 확인하세요.[39m
    [31m+         새로고침[39m
    [31m+         닫기[39m
    [31m+ [43m    [49m[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+ [43m    [49m[39m
    [31m+ [43m    [49m[39m
    [31m+[39m
    [31m+[39m
    [31m+[39m

    Call log:
    [2m  - Expect "toContainText" with timeout 12000ms[22m
    [2m  - waiting for locator('body')[22m
    [2m    15 × locator resolved to <body>…</body>[22m
    [2m       - unexpected value "[22m
    [2m    [22m
    [2m        Menu[22m
    [2m        TaxBaik[22m
    [2m            세무회계 관리 대시보드[22m
    [2m        공개 사이트[22m
    [2m            로그아웃[22m
    [2m[22m
    [2m    T[22m
    [2m        TaxBaik[22m
    [2m            세무 운영 콘솔[22m
    [2m[22m
    [2m    개요<path d="M0 0h24v24H0z" fill="none"/><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"/>[22m
    [2m                    대시보드[22m
    [2m[22m
    [2m    공개 사이트[22m
    [2m        로그아웃요청한 페이지를 찾을 수 없습니다.[22m
    [2m[22m
    [2m    [22m
    [2m[22m
    [2m    [22m
    [2m        [22m
    [2m            연결 재설정 중...[22m
    [2m            새로운 버전으로 업데이트되었습니다.[22m
    [2m            자동으로 페이지를 새로고침합니다. 잠시만 기다려주세요.[22m
    [2m        [22m
    [2m    [22m
    [2m[22m
    [2m    [22m
    [2m        관리자 화면을 불러오는 중 오류가 발생했습니다. 브라우저 콘솔 또는 서버 client-logs를 확인하세요.[22m
    [2m        새로고침[22m
    [2m        닫기[22m
    [2m    [22m
    [2m[22m
    [2m    [22m
    [2m    [22m
    [2m    [22m
    [2m[22m
    [2m[22m
    [2m"[22m


       at helpers\admin-auth.ts:98

       96 | export async function waitForAdminSection(page: Page, headingText: string) {
       97 |   const hero = page.locator('.admin-page-hero');
    >  98 |   await expect(page.locator('body')).toContainText(headingText, { timeout: Wait.page });
          |                                      ^
       99 |   await expect(hero).toBeVisible({ timeout: Wait.page });
      100 |   await expect(hero).toContainText(headingText, { timeout: Wait.page });
      101 |   await expect(page.getByRole('heading', { name: headingText, exact: true })).toBeVisible({ timeout: Wait.page });
        at waitForAdminSection (C:\Temp\taxbaik\tests\e2e\helpers\admin-auth.ts:98:38)
        at C:\Temp\taxbaik\tests\e2e\admin-crm-pages.spec.ts:21:30

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
    test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-Desktop-Chrome\video.webm
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-Desktop-Chrome\error-context.md

    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  2) [Desktop Chrome] › tests\e2e\admin-login.spec.ts:8:7 › admin authentication › logs in through the real browser UI and reaches dashboard 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.admin-page-hero')
    Expected: visible
    Timeout: 60000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 60000ms[22m
    [2m  - waiting for locator('.admin-page-hero')[22m


      75 |     await expect(page).toHaveURL(/\/taxbaik\/admin\/dashboard$/, { timeout: 20_000 });
      76 |     // WASM 부팅에 시간이 걸릴 수 있으므로 더 긴 타임아웃 사용
    > 77 |     await expect(page.locator('.admin-page-hero')).toBeVisible({ timeout: 60_000 });
         |                                                    ^
      78 |     await expect(page.locator('.admin-page-hero')).toContainText('대시보드');
      79 |     await expect(page.getByRole('link', { name: /로그아웃/ })).toBeVisible({ timeout: 30_000 });
      80 |     expect(consoleErrors, 'browser console/page errors').toEqual([]);
        at C:\Temp\taxbaik\tests\e2e\admin-login.spec.ts:77:52

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-1\traces\481c7578028bb96ee688-aefc7ef384b5d1902e60.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  3) [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:10:7 › Admin Pages E2E (Manual) › Login page loads 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('input[placeholder*="사용자"]')
    Expected: visible
    Timeout: 90000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for locator('input[placeholder*="사용자"]')[22m


      11 |     await page.goto(`${baseUrl}/admin/login`);
      12 |     await expect(page.locator('text=관리자 로그인')).toBeVisible();
    > 13 |     await expect(page.locator('input[placeholder*="사용자"]')).toBeVisible();
         |                                                             ^
      14 |   });
      15 |
      16 |   test('Dashboard page loads', async ({ page }) => {
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:13:61

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-2\traces\7ee68a35b274332ffb95-937e406787c122234496.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  4) [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:16:7 › Admin Pages E2E (Manual) › Dashboard page loads 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-25\traces\7ee68a35b274332ffb95-1fb45c6082ca8131a0af.trace'

    Error: page.fill: Test ended.
    Call log:
    [2m  - waiting for locator('input[name="username"]')[22m


      16 |   test('Dashboard page loads', async ({ page }) => {
      17 |     await page.goto(`${baseUrl}/admin/login`);
    > 18 |     await page.fill('input[name="username"]', username);
         |                ^
      19 |     await page.fill('input[name="password"]', password);
      20 |     await page.click('button[type="submit"]');
      21 |     await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:18:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  5) [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:31:7 › Admin Pages E2E (Manual) › Blog page loads 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-66\traces\7ee68a35b274332ffb95-3e67d5552a3f87367a92.trace'

    Error: page.fill: Test ended.
    Call log:
    [2m  - waiting for locator('input[name="username"]')[22m


      31 |   test('Blog page loads', async ({ page }) => {
      32 |     await page.goto(`${baseUrl}/admin/login`);
    > 33 |     await page.fill('input[name="username"]', username);
         |                ^
      34 |     await page.fill('input[name="password"]', password);
      35 |     await page.click('button[type="submit"]');
      36 |     await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:33:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  6) [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:46:7 › Admin Pages E2E (Manual) › Inquiry page loads 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-84\traces\7ee68a35b274332ffb95-85c3570ebfdc58417151.trace'

    Error: page.fill: Test ended.
    Call log:
    [2m  - waiting for locator('input[name="username"]')[22m


      46 |   test('Inquiry page loads', async ({ page }) => {
      47 |     await page.goto(`${baseUrl}/admin/login`);
    > 48 |     await page.fill('input[name="username"]', username);
         |                ^
      49 |     await page.fill('input[name="password"]', password);
      50 |     await page.click('button[type="submit"]');
      51 |     await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:48:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  7) [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:61:7 › Admin Pages E2E (Manual) › CRM pages load 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-94\traces\7ee68a35b274332ffb95-2ac99765fb27ce9f3f94.trace'

    Error: page.fill: Test ended.
    Call log:
    [2m  - waiting for locator('input[name="username"]')[22m


      61 |   test('CRM pages load', async ({ page }) => {
      62 |     await page.goto(`${baseUrl}/admin/login`);
    > 63 |     await page.fill('input[name="username"]', username);
         |                ^
      64 |     await page.fill('input[name="password"]', password);
      65 |     await page.click('button[type="submit"]');
      66 |     await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:63:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  8) [Desktop Chrome] › tests\e2e\admin-responsive.spec.ts:21:7 › admin responsive design (admin account) › dashboard loads correctly on all viewports 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.admin-page-hero')
    Expected: visible
    Timeout: 30000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 30000ms[22m
    [2m  - waiting for locator('.admin-page-hero')[22m


      29 |     // 2. 대시보드로 이동 및 최초 로드 대기
      30 |     await page.goto(`${baseUrl}/admin/dashboard`);
    > 31 |     await expect(page.locator('.admin-page-hero')).toBeVisible({ timeout: 30_000 });
         |                                                    ^
      32 |
      33 |     // 3. 각 디바이스별로 뷰포트를 변경하며 검증 (새로고침 없이 초고속 검증)
      34 |     for (const device of deviceTests) {
        at C:\Temp\taxbaik\tests\e2e\admin-responsive.spec.ts:31:52

    Error: ENOENT: no such file or directory, unlink 'C:\Temp\taxbaik\test-results\.playwright-artifacts-4\95c7aa3db3bf4bb6b7bed3223906b6bc.zip'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-Desktop-Chrome\video.webm
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-Desktop-Chrome\error-context.md

  9) [Desktop Chrome] › tests\e2e\admin-responsive.spec.ts:85:7 › admin responsive design (admin account) › drawer responsiveness on mobile 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.admin-page-hero')
    Expected: visible
    Timeout: 30000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 30000ms[22m
    [2m  - waiting for locator('.admin-page-hero')[22m


      89 |     await page.setViewportSize({ width: 375, height: 667 });
      90 |     await page.goto(`${baseUrl}/admin/dashboard`);
    > 91 |     await expect(page.locator('.admin-page-hero')).toBeVisible({ timeout: 30_000 });
         |                                                    ^
      92 |
      93 |     // 모바일에서는 메뉴 토글 버튼이 있어야 함
      94 |     const menuButton = page.locator('.admin-menu-button');
        at C:\Temp\taxbaik\tests\e2e\admin-responsive.spec.ts:91:52

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-9\traces\da7c59ce61d93dc7813a-5d3f92e340e513b2029a.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  10) [Desktop Chrome] › tests\e2e\admin-responsive.spec.ts:103:7 › admin responsive design (admin account) › form inputs are accessible on mobile 

    TimeoutError: page.waitForSelector: Timeout 30000ms exceeded.
    Call log:
    [2m  - waiting for locator('input[type="text"], textarea, .mud-input-base, .mud-field') to be visible[22m


      107 |     await page.setViewportSize({ width: 480, height: 853 });
      108 |     await page.goto(`${baseUrl}/admin/faqs/create`);
    > 109 |     await page.waitForSelector('input[type="text"], textarea, .mud-input-base, .mud-field', { timeout: 30_000 });
          |                ^
      110 |
      111 |     const inputs = page.locator('input[type="text"], textarea, .mud-input-base, .mud-field');
      112 |     const inputCount = await inputs.count();
        at C:\Temp\taxbaik\tests\e2e\admin-responsive.spec.ts:109:16

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-19\traces\da7c59ce61d93dc7813a-c665baf9a8ce69347298.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  11) [Desktop Chrome] › tests\e2e\admin-responsive.spec.ts:126:7 › admin responsive design (admin account) › buttons are clickable on all viewports 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.admin-page-hero')
    Expected: visible
    Timeout: 30000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 30000ms[22m
    [2m  - waiting for locator('.admin-page-hero')[22m


      137 |       await page.setViewportSize(viewport);
      138 |       await page.goto(`${baseUrl}/admin/dashboard`);
    > 139 |       await expect(page.locator('.admin-page-hero')).toBeVisible({ timeout: 30_000 });
          |                                                      ^
      140 |
      141 |       const logoutButton = page.locator('a:has-text("로그아웃"), button:has-text("로그아웃")').first();
      142 |       if (await logoutButton.count() > 0) {
        at C:\Temp\taxbaik\tests\e2e\admin-responsive.spec.ts:139:54

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-47\traces\da7c59ce61d93dc7813a-e31c551215937955df13.network'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  12) [Desktop Chrome] › tests\e2e\blog-seo.spec.ts:6:7 › blog seo › exposes title description and canonical on blog detail pages 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('a[href^="/taxbaik/blog/"]').filter({ hasText: '글 내용 보기' }).first()
    Expected: visible
    Timeout: 90000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for locator('a[href^="/taxbaik/blog/"]').filter({ hasText: '글 내용 보기' }).first()[22m


       7 |     await page.goto(`${baseUrl}/blog`);
       8 |     const firstPost = page.locator('a[href^="/taxbaik/blog/"]').filter({ hasText: '글 내용 보기' }).first();
    >  9 |     await expect(firstPost).toBeVisible();
         |                             ^
      10 |     const detailHref = await firstPost.getAttribute('href');
      11 |     expect(detailHref).toMatch(/^\/taxbaik\/blog\/[a-z0-9-]+$/);
      12 |     const detailPath = detailHref?.replace('/taxbaik', '') ?? '/blog';
        at C:\Temp\taxbaik\tests\e2e\blog-seo.spec.ts:9:29

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-7\traces\1d0d3a59ebe6e0e691d7-f1eeed31da0cb3feeeb9.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  13) [Desktop Chrome] › tests\e2e\blog-validation.spec.ts:9:5 › Blog Management Full Flow - Real Domain Validation 

    Error: page.evaluate: Error: login failed: 400 Bad Request
        at eval (eval at evaluate (:290:30), <anonymous>:17:15)
        at async <anonymous>:316:30
        at eval (eval at evaluate (:290:30), <anonymous>:17:15)
        at async <anonymous>:316:30
        at loginThroughAdminUi (C:\Temp\taxbaik\tests\e2e\helpers\admin-auth.ts:53:30)
        at C:\Temp\taxbaik\tests\e2e\blog-validation.spec.ts:26:3

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
    test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-Desktop-Chrome\video.webm
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-Desktop-Chrome\error-context.md

    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  14) [Desktop Chrome] › tests\e2e\contact-submit.spec.ts:27:7 › contact submit › creates an inquiry and shows it in admin list 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.mud-main-content').getByText('문의 관리').first()
    Expected: visible
    Timeout: 20000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 20000ms[22m
    [2m  - waiting for locator('.mud-main-content').getByText('문의 관리').first()[22m


      53 |     await loginThroughAdminUi(page, baseUrl, username, password);
      54 |     await navigateInBlazor(page, `${baseUrl}/admin/inquiries`);
    > 55 |     await expect(page.locator('.mud-main-content').getByText('문의 관리').first()).toBeVisible({ timeout: 20_000 });
         |                                                                                ^
      56 |   });
      57 |
      58 |   test('submitting the public Contact.cshtml form shows the success message', async ({ page }) => {
        at C:\Temp\taxbaik\tests\e2e\contact-submit.spec.ts:55:80

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, copyfile 'C:\Temp\taxbaik\test-results\.playwright-artifacts-5\traces\78ff188543f551bce0b7-e47709be69cc4baa3d2f-recording3.network' -> 'C:\Temp\taxbaik\test-results\.playwright-artifacts-5\traces\78ff188543f551bce0b7-e47709be69cc4baa3d2f-recording3-pwnetcopy-1.network'

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-5\traces\78ff188543f551bce0b7-e47709be69cc4baa3d2f-recording2.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  15) [Desktop Chrome] › tests\e2e\dashboard-check.spec.ts:4:5 › check dashboard metrics ───────────

    TimeoutError: page.waitForSelector: Timeout 5000ms exceeded.
    Call log:
    [2m  - waiting for locator('.admin-page-hero') to be visible[22m


      11 |
      12 |   // Wait for page load
    > 13 |   await page.waitForSelector('.admin-page-hero', { timeout: 5000 });
         |              ^
      14 |   await page.waitForTimeout(2000);
      15 |
      16 |   // Check for metric cards
        at C:\Temp\taxbaik\tests\e2e\dashboard-check.spec.ts:13:14

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-8\traces\c9b49e87aa42da94a370-802a93cd4712550011f0.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\dashboard-check-check-dashboard-metrics-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\dashboard-check-check-dashboard-metrics-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\dashboard-check-check-dashboard-metrics-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\dashboard-check-check-dashboard-metrics-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  16) [Desktop Chrome] › tests\e2e\full-admin-pages.spec.ts:5:5 › production: verify all admin pages load correctly 

    Error: page.evaluate: Error: login failed: 400 Bad Request
        at eval (eval at evaluate (:290:30), <anonymous>:17:15)
        at async <anonymous>:316:30
        at eval (eval at evaluate (:290:30), <anonymous>:17:15)
        at async <anonymous>:316:30
        at loginThroughAdminUi (C:\Temp\taxbaik\tests\e2e\helpers\admin-auth.ts:53:30)
        at C:\Temp\taxbaik\tests\e2e\full-admin-pages.spec.ts:10:3

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-12\traces\c1459fca16a225cd2316-605468f26201db88e3ec.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  17) [Desktop Chrome] › tests\e2e\full-user-flow.spec.ts:6:7 › 프로덕션 사용자 흐름 테스트 › 홈페이지 → 로그인 → 대시보드 → 블로그 CRUD 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('text=블로그 관리')
    Expected: visible
    Timeout: 30000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 30000ms[22m
    [2m  - waiting for locator('text=블로그 관리')[22m


      39 |     // 네비게이션 메뉴 확인
      40 |     const blogLink = page.locator('text=블로그 관리');
    > 41 |     await expect(blogLink).toBeVisible({ timeout: 30000 });
         |                            ^
      42 |     console.log('✓ 블로그 관리 메뉴 표시');
      43 |
      44 |     // 블로그 페이지로 이동
        at C:\Temp\taxbaik\tests\e2e\full-user-flow.spec.ts:41:28

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-6\traces\c6681a4a350aa86369bc-01a4f5a81d4d00a3ba64-recording1.network'

    Error: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-6\9eb7f8a50571f2f289f25779cc7f8e4b.zip'

    [31mTest timeout of 180000ms exceeded.[39m

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\full-user-flow-프로덕션-사용자-흐름-테스트-홈페이지-→-로그인-→-대시보드-→-블로그-CRUD-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\full-user-flow-프로덕션-사용자-흐름-테스트-홈페이지-→-로그인-→-대시보드-→-블로그-CRUD-Desktop-Chrome\error-context.md

  18) [Desktop Chrome] › tests\e2e\inquiry-detail.spec.ts:9:7 › inquiry detail › shows the created inquiry and admin action links 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: getByText('Detail-1783485611950', { exact: true }).first()
    Expected: visible
    Timeout: 90000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for getByText('Detail-1783485611950', { exact: true }).first()[22m


      37 |
      38 |     await expect(page).toHaveURL(/\/taxbaik\/admin\/inquiries\/\d+$/);
    > 39 |     await expect(page.getByText(name, { exact: true }).first()).toBeVisible();
         |                                                                 ^
      40 |     await expect(page.getByText(phone, { exact: true }).first()).toBeVisible();
      41 |     await expect(page.getByText(message, { exact: true }).first()).toBeVisible();
      42 |     await expect(page.getByRole('button', { name: '신규' })).toBeVisible();
        at C:\Temp\taxbaik\tests\e2e\inquiry-detail.spec.ts:39:65

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, copyfile 'C:\Temp\taxbaik\test-results\.playwright-artifacts-10\traces\0b7ed30a9e279ee14eeb-91add6684d79bcdc7c66-recording1.network' -> 'C:\Temp\taxbaik\test-results\.playwright-artifacts-10\traces\0b7ed30a9e279ee14eeb-91add6684d79bcdc7c66-recording1-pwnetcopy-1.network'

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-10\traces\0b7ed30a9e279ee14eeb-91add6684d79bcdc7c66.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\inquiry-detail-inquiry-det-43d69-uiry-and-admin-action-links-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\inquiry-detail-inquiry-det-43d69-uiry-and-admin-action-links-Desktop-Chrome\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\inquiry-detail-inquiry-det-43d69-uiry-and-admin-action-links-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\inquiry-detail-inquiry-det-43d69-uiry-and-admin-action-links-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  19) [Desktop Chrome] › tests\e2e\login-test.spec.ts:8:5 › Admin Login Page - prerendered HTML contains the form before JS runs 

    Error: [2mexpect([22m[31mreceived[39m[2m).[22mtoContain[2m([22m[32mexpected[39m[2m) // indexOf[22m

    Expected substring: [32m"name=\"username\""[39m
    Received string:    [31m"<!DOCTYPE html>·[39m
    [31m<html lang=\"ko\">·[39m
    [31m<head>·[39m
    [31m    <meta charset=\"utf-8\" />·[39m
    [31m    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />·[39m
    [31m    <title>관리자 로그인</title>·[39m
    [31m    <meta name=\"description\" content=\"관리자 로그인 페이지입니다.\" />·[39m
    [31m    <meta name=\"keywords\" content=\"백원숙 세무회계, 세무사, 사업자 기장, 양도소득세, 증여세, 상속세, 종합소득세, 절세 상담, 세무 대리\" />·······[39m
    [31m    <!-- Open Graph / Facebook -->·[39m
    [31m    <meta property=\"og:type\" content=\"website\" />·[39m
    [31m    <meta property=\"og:title\" content=\"관리자 로그인\" />·[39m
    [31m    <meta property=\"og:description\" content=\"관리자 로그인 페이지입니다.\" />·[39m
    [31m    <meta property=\"og:image\" content=\"https://www.taxbaik.com/taxbaik/images/og-image.jpg\" />·[39m
    [31m    <meta property=\"og:url\" content=\"https://www.taxbaik.com/taxbaik/\" />·······[39m
    [31m    <!-- Twitter -->·[39m
    [31m    <meta property=\"twitter:card\" content=\"summary_large_image\" />·[39m
    [31m    <meta property=\"twitter:title\" content=\"관리자 로그인\" />·[39m
    [31m    <meta property=\"twitter:description\" content=\"관리자 로그인 페이지입니다.\" />·[39m
    [31m    <meta property=\"twitter:image\" content=\"https://www.taxbaik.com/taxbaik/images/og-image.jpg\" />···[39m
    [31m    <!-- 검색엔진 등록용 소유권 인증 메타 태그 (발급받으신 토큰이 있으면 아래 content에 넣어 주시면 됩니다) -->·[39m
    [31m    <!-- <meta name=\"naver-site-verification\" content=\"네이버_서치어드바이저_토큰_입력\" /> -->·[39m
    [31m    <!-- <meta name=\"google-site-verification\" content=\"구글_서치콘솔_토큰_입력\" /> -->···[39m
    [31m    <meta name=\"robots\" content=\"index, follow\" />·[39m
    [31m    <meta name=\"theme-color\" content=\"#C89D6E\" />·[39m
    [31m    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/taxbaik/favicon.svg\" />·[39m
    [31m    <link rel=\"alternate icon\" href=\"/taxbaik/favicon.ico\" />···[39m
    [31m    <!-- RSS Feed -->·[39m
    [31m    <link rel=\"alternate\" type=\"application/rss+xml\" title=\"백원숙 세무회계 블로그\" href=\"/taxbaik/rss.xml\" />·[39m
    [31m    <link rel=\"alternate\" type=\"application/rss+xml\" title=\"TaxBaik Blog Feed\" href=\"/taxbaik/feed.xml\" />·[39m
    [31m    <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\" />·[39m
    [31m    <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin />·[39m
    [31m    <link rel=\"dns-prefetch\" href=\"https://cdn.jsdelivr.net\" />·[39m
    [31m    <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Noto+Sans+KR:wght@400;500;700&family=Outfit:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\" />·[39m
    [31m    <link rel=\"canonical\" href=\"http://localhost:5001/taxbaik/admin/login\" />·[39m
    [31m    <link href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css\" rel=\"stylesheet\" />·[39m
    [31m    <link rel=\"stylesheet\" href=\"/taxbaik/css/site.css\" asp-append-version=\"true\" />···[39m
    [31m    <!-- 구조화된 데이터 (JSON-LD Schema Markup) -->·[39m
    [31m    <script type=\"application/ld+json\">·[39m
    [31m    {·[39m
    [31m      \"@context\": \"https://schema.org\",·[39m
    [31m      \"@type\": \"ProfessionalService\",·[39m
    [31m      \"name\": \"백원숙 세무회계\",·[39m
    [31m      \"description\": \"사업자 기장, 부동산 양도세·증여세, 종합소득세 전문 상담 세무사\",·[39m
    [31m      \"url\": \"https://www.taxbaik.com/taxbaik/\",·[39m
    [31m      \"telephone\": \"010-4122-8268\",·[39m
    [31m      \"email\": \"taxbaik5668@gmail.com\",·[39m
    [31m      \"address\": {·[39m
    [31m        \"@type\": \"PostalAddress\",·[39m
    [31m        \"addressCountry\": \"KR\"·[39m
    [31m      },·[39m
    [31m      \"sameAs\": [·[39m
    [31m        \"https://www.instagram.com/taxtory5668/\",·[39m
    [31m        \"https://pf.kakao.com/_xoxchTX\"·[39m
    [31m      ]·[39m
    [31m    }·[39m
    [31m    </script>···[39m
    [31m    <!-- Google tag (gtag.js) -->·[39m
    [31m    <script async src=\"https://www.googletagmanager.com/gtag/js?id=G-25KRKY45D7\"></script>·[39m
    [31m    <script>·[39m
    [31m      window.dataLayer = window.dataLayer || [];·[39m
    [31m      function gtag(){dataLayer.push(arguments);}·[39m
    [31m      gtag('js', new Date());···[39m
    [31m      gtag('config', 'G-25KRKY45D7');·[39m
    [31m    </script>·[39m
    [31m</head>·[39m
    [31m<body class=\"with-mobile-cta\" data-kakao-url=\"https://pf.kakao.com/_xoxchTX\">·[39m
    [31m    <partial name=\"_Header\" />·[39m
    [31m    <main role=\"main\" class=\"pb-5\">··········[39m
    [31m<section class=\"container py-5\" style=\"max-width: 560px;\">[39m
    [31m    <div class=\"card shadow-sm border-0\">[39m
    [31m        <div class=\"card-body p-4 p-md-5\">[39m
    [31m            <div class=\"mb-4\">[39m
    [31m                <p class=\"text-uppercase text-muted small mb-1\">TaxBaik Admin</p>[39m
    [31m                <h1 class=\"h3 fw-bold mb-2\">관리자 로그인</h1>[39m
    [31m                <p class=\"text-muted mb-0\">로그인 후 대시보드와 관리자 기능을 이용할 수 있습니다.</p>[39m
    [31m            </div>··[39m
    [31m            <form id=\"admin-login-form\" method=\"post\" class=\"vstack gap-3\">[39m
    [31m                <input name=\"__RequestVerificationToken\" type=\"hidden\" value=\"CfDJ8MSeutqIyfZKsHr5RAKz7bOtUgv0RtgWEhU3bXs-XyNKVTFnGf2Wk8_9_Yj7Gkjgw6VuDRexmEf7_jr75Lmw7Dt5CNnAGdK9UaskBOFNhiMEmOSjOZPmA0JyU9RwxbSCbGjpO0kbXTe182zIepDqCUc\" />[39m
    [31m                <input type=\"hidden\" id=\"ReturnUrl\" name=\"ReturnUrl\" />·[39m
    [31m                <div>[39m
    [31m                    <label class=\"form-label\" for=\"Username\">사용자명</label>[39m
    [31m                    <input class=\"form-control\" id=\"Username\" name=\"Username\" value=\"\" autocomplete=\"username\" />[39m
    [31m                    <span class=\"text-danger small\"></span>[39m
    [31m                </div>·[39m
    [31m                <div>[39m
    [31m                    <label class=\"form-label\" for=\"Password\">비밀번호</label>[39m
    [31m                    <input class=\"form-control\" id=\"Password\" name=\"Password\" type=\"password\" autocomplete=\"current-password\" />[39m
    [31m                    <span class=\"text-danger small\"></span>[39m
    [31m                </div>·[39m
    [31m                <div class=\"form-check\">[39m
    [31m                    <input class=\"form-check-input\" id=\"RememberMe\" name=\"RememberMe\" type=\"checkbox\" value=\"true\" checked=\"checked\" />[39m
    [31m                    <label class=\"form-check-label\" for=\"RememberMe\">로그인 상태 유지</label>[39m
    [31m                </div>·[39m
    [31m                <button class=\"btn btn-dark w-100\" id=\"admin-login-submit\" type=\"submit\">[39m
    [31m                    <span>로그인</span>[39m
    [31m                </button>[39m
    [31m            </form>·[39m
    [31m            <p class=\"text-muted small mt-4 mb-0\">[39m
    [31m                이 페이지는 서버 렌더링 기반입니다. 로그인 성공 후 관리자 웹앱으로 이동합니다.[39m
    [31m            </p>[39m
    [31m        </div>[39m
    [31m    </div>[39m
    [31m</section>···[39m
    [31m    </main>·[39m
    [31m    <footer class=\"bg-light border-top mt-5 py-5\">·[39m
    [31m        <div class=\"container\">·[39m
    [31m            <div class=\"row g-5\">·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">백원숙 세무회계</h6>·[39m
    [31m                    <p class=\"small text-muted\">·[39m
    [31m                        사업자 기장, 부동산 양도세·증여세,<br />·[39m
    [31m                        종합소득세 전문 상담·[39m
    [31m                    </p>·[39m
    [31m                </div>·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">메뉴</h6>·[39m
    [31m                    <ul class=\"list-unstyled small\">·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/\" class=\"text-decoration-none text-muted\">홈</a></li>·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/about\" class=\"text-decoration-none text-muted\">세무사 소개</a></li>·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/services\" class=\"text-decoration-none text-muted\">전문 서비스</a></li>·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/blog\" class=\"text-decoration-none text-muted\">세무 정보</a></li>·[39m
    [31m                        <li><a href=\"/taxbaik/contact\" class=\"text-decoration-none text-muted\">상담 신청</a></li>·[39m
    [31m                    </ul>·[39m
    [31m                </div>·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">연락처</h6>·[39m
    [31m                    <p class=\"small\">·[39m
    [31m                        📞 <a href=\"tel:010-4122-8268\" class=\"text-decoration-none text-muted\">010-4122-8268</a><br />·[39m
    [31m                        📧 <a href=\"mailto:taxbaik5668@gmail.com\" class=\"text-decoration-none text-muted\">taxbaik5668@gmail.com</a>·[39m
    [31m                    </p>·[39m
    [31m                </div>·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">채널</h6>·[39m
    [31m                    <p class=\"small\">·[39m
    [31m                        <a href=\"https://pf.kakao.com/_xoxchTX\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"btn btn-sm btn-warning me-2\">카카오톡</a>·[39m
    [31m                        <a href=\"https://www.instagram.com/taxtory5668/\" target=\"_blank\" class=\"btn btn-sm btn-outline-secondary\">Instagram</a>·[39m
    [31m                    </p>·[39m
    [31m                </div>·[39m
    [31m            </div>·[39m
    [31m            <hr class=\"my-4\" />·[39m
    [31m            <div class=\"text-center small text-muted\">·[39m
    [31m                <p>© 2026 백원숙 세무회계. All rights reserved.</p>·[39m
    [31m                <div class=\"mb-2\">·[39m
    [31m                    <a href=\"/taxbaik/privacy\" class=\"text-decoration-none text-muted me-2\">개인정보처리방침</a>·[39m
    [31m                    <span class=\"text-muted\">|</span>·[39m
    [31m                    <a href=\"/taxbaik/terms\" class=\"text-decoration-none text-muted ms-2 me-2\">이용약관</a>·[39m
    [31m                    <span class=\"text-muted\">|</span>·[39m
    [31m                </div>·[39m
    [31m                    <div class=\"mt-2 text-muted\" style=\"font-size: 0.75rem; opacity: 0.6;\">·[39m
    [31m                        vunknown · unknown·[39m
    [31m                    </div>·[39m
    [31m            </div>·[39m
    [31m        </div>·[39m
    [31m    </footer>···[39m
    [31m    <!-- Mobile Fixed CTA -->·[39m
    [31m    <div class=\"mobile-cta-bar d-lg-none\">·[39m
    [31m        <a href=\"https://pf.kakao.com/_xoxchTX\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"btn-kakao-mobile\">·[39m
    [31m            💬 카카오 상담하기·[39m
    [31m        </a>·[39m
    [31m    </div>···[39m
    [31m    <script src=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js\" defer></script>·[39m
    [31m    <script src=\"/taxbaik/js/site.js\" asp-append-version=\"true\" defer></script>·······[39m
    [31m</body>·[39m
    [31m</html>·[39m
    [31m"[39m

      16 |
      17 |   const html = await response.text();
    > 18 |   expect(html).toContain('name="username"');
         |                ^
      19 |   expect(html).toContain('name="password"');
      20 |   expect(html).toContain('admin-login-form');
      21 | });
        at C:\Temp\taxbaik\tests\e2e\login-test.spec.ts:18:16

    Error: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-11\25613ef886db619a18a5e8eb23c23a6c.zip'

    [31mTest timeout of 180000ms exceeded.[39m

  20) [Desktop Chrome] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: getByRole('link', { name: /상담 신청|무료 상담 신청/ })
    Expected: visible
    Error: strict mode violation: getByRole('link', { name: /상담 신청|무료 상담 신청/ }) resolved to 2 elements:
        1) <a href="/taxbaik/contact" class="btn btn-primary btn-lg">상담 신청하기</a> aka getByRole('link', { name: '상담 신청하기' })
        2) <a href="/taxbaik/contact" class="text-decoration-none text-muted">상담 신청</a> aka getByRole('link', { name: '상담 신청', exact: true })

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for getByRole('link', { name: /상담 신청|무료 상담 신청/ })[22m


      10 |     await expect(page).not.toHaveTitle(/관리자/);
      11 |     await expect(page.getByRole('heading', { name: /세금과 자산|백원숙 세무회계/ })).toBeVisible();
    > 12 |     await expect(page.getByRole('link', { name: /상담 신청|무료 상담 신청/ })).toBeVisible();
         |                                                                      ^
      13 |     await expect(page.locator('meta[name="description"]')).toHaveAttribute('content', /사업자 기장|부동산|종합소득세/);
      14 |     await expect(page.getByRole('heading', { name: /상담 과정/ })).toBeVisible();
      15 |
        at C:\Temp\taxbaik\tests\e2e\public-smoke.spec.ts:12:70

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Desktop-Chrome\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
    test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Desktop-Chrome\video.webm
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Desktop-Chrome\error-context.md

    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Desktop-Chrome\trace.zip
    Usage:

        npx playwright show-trace test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Desktop-Chrome\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  21) [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:18:7 › admin CRM pages › TaxProfiles page loads with grid and add button 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  22) [iPhone 12] › tests\e2e\admin-login.spec.ts:8:7 › admin authentication › logs in through the real browser UI and reaches dashboard 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  23) [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:10:7 › Admin Pages E2E (Manual) › Login page loads 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  24) [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:16:7 › Admin Pages E2E (Manual) › Dashboard page loads 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  25) [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:31:7 › Admin Pages E2E (Manual) › Blog page loads 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  26) [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:46:7 › Admin Pages E2E (Manual) › Inquiry page loads 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  27) [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:61:7 › Admin Pages E2E (Manual) › CRM pages load 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  28) [iPhone 12] › tests\e2e\admin-password-change.spec.ts:10:7 › admin password change › changes password through the real admin UI 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-password-change-admi-f2a6b-d-through-the-real-admin-UI-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-password-change-admi-f2a6b-d-through-the-real-admin-UI-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  29) [iPhone 12] › tests\e2e\admin-responsive.spec.ts:21:7 › admin responsive design (admin account) › dashboard loads correctly on all viewports 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  30) [iPhone 12] › tests\e2e\admin-responsive.spec.ts:85:7 › admin responsive design (admin account) › drawer responsiveness on mobile 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  31) [iPhone 12] › tests\e2e\admin-responsive.spec.ts:103:7 › admin responsive design (admin account) › form inputs are accessible on mobile 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  32) [iPhone 12] › tests\e2e\admin-responsive.spec.ts:126:7 › admin responsive design (admin account) › buttons are clickable on all viewports 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  33) [iPhone 12] › tests\e2e\admin-smoke.spec.ts:10:7 › admin smoke › @smoke logs in and lands on dashboard without circuit errors 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-smoke-admin-smoke-sm-fb1b2-oard-without-circuit-errors-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-smoke-admin-smoke-sm-fb1b2-oard-without-circuit-errors-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  34) [iPhone 12] › tests\e2e\blog-crud.spec.ts:9:7 › blog CRUD operations › complete blog creation, read, update, delete flow 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\blog-crud-blog-CRUD-operat-e05f5-ion-read-update-delete-flow-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\blog-crud-blog-CRUD-operat-e05f5-ion-read-update-delete-flow-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  35) [iPhone 12] › tests\e2e\blog-seo.spec.ts:6:7 › blog seo › exposes title description and canonical on blog detail pages 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  36) [iPhone 12] › tests\e2e\blog-validation.spec.ts:9:5 › Blog Management Full Flow - Real Domain Validation 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  37) [iPhone 12] › tests\e2e\contact-submit.spec.ts:27:7 › contact submit › creates an inquiry and shows it in admin list 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  38) [iPhone 12] › tests\e2e\contact-submit.spec.ts:58:7 › contact submit › submitting the public Contact.cshtml form shows the success message 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\contact-submit-contact-sub-024b3-m-shows-the-success-message-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\contact-submit-contact-sub-024b3-m-shows-the-success-message-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  39) [iPhone 12] › tests\e2e\dashboard-check.spec.ts:4:5 › check dashboard metrics ────────────────

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\dashboard-check-check-dashboard-metrics-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\dashboard-check-check-dashboard-metrics-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  40) [iPhone 12] › tests\e2e\full-admin-pages.spec.ts:5:5 › production: verify all admin pages load correctly 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  41) [iPhone 12] › tests\e2e\full-user-flow.spec.ts:6:7 › 프로덕션 사용자 흐름 테스트 › 홈페이지 → 로그인 → 대시보드 → 블로그 CRUD 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\full-user-flow-프로덕션-사용자-흐름-테스트-홈페이지-→-로그인-→-대시보드-→-블로그-CRUD-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\full-user-flow-프로덕션-사용자-흐름-테스트-홈페이지-→-로그인-→-대시보드-→-블로그-CRUD-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  42) [iPhone 12] › tests\e2e\inquiry-detail.spec.ts:9:7 › inquiry detail › shows the created inquiry and admin action links 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\inquiry-detail-inquiry-det-43d69-uiry-and-admin-action-links-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\inquiry-detail-inquiry-det-43d69-uiry-and-admin-action-links-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  43) [iPhone 12] › tests\e2e\login-test.spec.ts:8:5 › Admin Login Page - prerendered HTML contains the form before JS runs 

    Error: [2mexpect([22m[31mreceived[39m[2m).[22mtoContain[2m([22m[32mexpected[39m[2m) // indexOf[22m

    Expected substring: [32m"name=\"username\""[39m
    Received string:    [31m"<!DOCTYPE html>·[39m
    [31m<html lang=\"ko\">·[39m
    [31m<head>·[39m
    [31m    <meta charset=\"utf-8\" />·[39m
    [31m    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />·[39m
    [31m    <title>관리자 로그인</title>·[39m
    [31m    <meta name=\"description\" content=\"관리자 로그인 페이지입니다.\" />·[39m
    [31m    <meta name=\"keywords\" content=\"백원숙 세무회계, 세무사, 사업자 기장, 양도소득세, 증여세, 상속세, 종합소득세, 절세 상담, 세무 대리\" />·······[39m
    [31m    <!-- Open Graph / Facebook -->·[39m
    [31m    <meta property=\"og:type\" content=\"website\" />·[39m
    [31m    <meta property=\"og:title\" content=\"관리자 로그인\" />·[39m
    [31m    <meta property=\"og:description\" content=\"관리자 로그인 페이지입니다.\" />·[39m
    [31m    <meta property=\"og:image\" content=\"https://www.taxbaik.com/taxbaik/images/og-image.jpg\" />·[39m
    [31m    <meta property=\"og:url\" content=\"https://www.taxbaik.com/taxbaik/\" />·······[39m
    [31m    <!-- Twitter -->·[39m
    [31m    <meta property=\"twitter:card\" content=\"summary_large_image\" />·[39m
    [31m    <meta property=\"twitter:title\" content=\"관리자 로그인\" />·[39m
    [31m    <meta property=\"twitter:description\" content=\"관리자 로그인 페이지입니다.\" />·[39m
    [31m    <meta property=\"twitter:image\" content=\"https://www.taxbaik.com/taxbaik/images/og-image.jpg\" />···[39m
    [31m    <!-- 검색엔진 등록용 소유권 인증 메타 태그 (발급받으신 토큰이 있으면 아래 content에 넣어 주시면 됩니다) -->·[39m
    [31m    <!-- <meta name=\"naver-site-verification\" content=\"네이버_서치어드바이저_토큰_입력\" /> -->·[39m
    [31m    <!-- <meta name=\"google-site-verification\" content=\"구글_서치콘솔_토큰_입력\" /> -->···[39m
    [31m    <meta name=\"robots\" content=\"index, follow\" />·[39m
    [31m    <meta name=\"theme-color\" content=\"#C89D6E\" />·[39m
    [31m    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/taxbaik/favicon.svg\" />·[39m
    [31m    <link rel=\"alternate icon\" href=\"/taxbaik/favicon.ico\" />···[39m
    [31m    <!-- RSS Feed -->·[39m
    [31m    <link rel=\"alternate\" type=\"application/rss+xml\" title=\"백원숙 세무회계 블로그\" href=\"/taxbaik/rss.xml\" />·[39m
    [31m    <link rel=\"alternate\" type=\"application/rss+xml\" title=\"TaxBaik Blog Feed\" href=\"/taxbaik/feed.xml\" />·[39m
    [31m    <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\" />·[39m
    [31m    <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin />·[39m
    [31m    <link rel=\"dns-prefetch\" href=\"https://cdn.jsdelivr.net\" />·[39m
    [31m    <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Noto+Sans+KR:wght@400;500;700&family=Outfit:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\" />·[39m
    [31m    <link rel=\"canonical\" href=\"http://localhost:5001/taxbaik/admin/login\" />·[39m
    [31m    <link href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css\" rel=\"stylesheet\" />·[39m
    [31m    <link rel=\"stylesheet\" href=\"/taxbaik/css/site.css\" asp-append-version=\"true\" />···[39m
    [31m    <!-- 구조화된 데이터 (JSON-LD Schema Markup) -->·[39m
    [31m    <script type=\"application/ld+json\">·[39m
    [31m    {·[39m
    [31m      \"@context\": \"https://schema.org\",·[39m
    [31m      \"@type\": \"ProfessionalService\",·[39m
    [31m      \"name\": \"백원숙 세무회계\",·[39m
    [31m      \"description\": \"사업자 기장, 부동산 양도세·증여세, 종합소득세 전문 상담 세무사\",·[39m
    [31m      \"url\": \"https://www.taxbaik.com/taxbaik/\",·[39m
    [31m      \"telephone\": \"010-4122-8268\",·[39m
    [31m      \"email\": \"taxbaik5668@gmail.com\",·[39m
    [31m      \"address\": {·[39m
    [31m        \"@type\": \"PostalAddress\",·[39m
    [31m        \"addressCountry\": \"KR\"·[39m
    [31m      },·[39m
    [31m      \"sameAs\": [·[39m
    [31m        \"https://www.instagram.com/taxtory5668/\",·[39m
    [31m        \"https://pf.kakao.com/_xoxchTX\"·[39m
    [31m      ]·[39m
    [31m    }·[39m
    [31m    </script>···[39m
    [31m    <!-- Google tag (gtag.js) -->·[39m
    [31m    <script async src=\"https://www.googletagmanager.com/gtag/js?id=G-25KRKY45D7\"></script>·[39m
    [31m    <script>·[39m
    [31m      window.dataLayer = window.dataLayer || [];·[39m
    [31m      function gtag(){dataLayer.push(arguments);}·[39m
    [31m      gtag('js', new Date());···[39m
    [31m      gtag('config', 'G-25KRKY45D7');·[39m
    [31m    </script>·[39m
    [31m</head>·[39m
    [31m<body class=\"with-mobile-cta\" data-kakao-url=\"https://pf.kakao.com/_xoxchTX\">·[39m
    [31m    <partial name=\"_Header\" />·[39m
    [31m    <main role=\"main\" class=\"pb-5\">··········[39m
    [31m<section class=\"container py-5\" style=\"max-width: 560px;\">[39m
    [31m    <div class=\"card shadow-sm border-0\">[39m
    [31m        <div class=\"card-body p-4 p-md-5\">[39m
    [31m            <div class=\"mb-4\">[39m
    [31m                <p class=\"text-uppercase text-muted small mb-1\">TaxBaik Admin</p>[39m
    [31m                <h1 class=\"h3 fw-bold mb-2\">관리자 로그인</h1>[39m
    [31m                <p class=\"text-muted mb-0\">로그인 후 대시보드와 관리자 기능을 이용할 수 있습니다.</p>[39m
    [31m            </div>··[39m
    [31m            <form id=\"admin-login-form\" method=\"post\" class=\"vstack gap-3\">[39m
    [31m                <input name=\"__RequestVerificationToken\" type=\"hidden\" value=\"CfDJ8MSeutqIyfZKsHr5RAKz7bNc5XRjCceyOBgn9zkdJXBWN57npr2O_DegUkJZiDxScNY07J0b6TMmz_daklUQkcRIBWIa46HwrOOur4GDDgMm992sW7JLD_iBKwHok0w-HaCkhXENXvuS8sv_gkpCyiQ\" />[39m
    [31m                <input type=\"hidden\" id=\"ReturnUrl\" name=\"ReturnUrl\" />·[39m
    [31m                <div>[39m
    [31m                    <label class=\"form-label\" for=\"Username\">사용자명</label>[39m
    [31m                    <input class=\"form-control\" id=\"Username\" name=\"Username\" value=\"\" autocomplete=\"username\" />[39m
    [31m                    <span class=\"text-danger small\"></span>[39m
    [31m                </div>·[39m
    [31m                <div>[39m
    [31m                    <label class=\"form-label\" for=\"Password\">비밀번호</label>[39m
    [31m                    <input class=\"form-control\" id=\"Password\" name=\"Password\" type=\"password\" autocomplete=\"current-password\" />[39m
    [31m                    <span class=\"text-danger small\"></span>[39m
    [31m                </div>·[39m
    [31m                <div class=\"form-check\">[39m
    [31m                    <input class=\"form-check-input\" id=\"RememberMe\" name=\"RememberMe\" type=\"checkbox\" value=\"true\" checked=\"checked\" />[39m
    [31m                    <label class=\"form-check-label\" for=\"RememberMe\">로그인 상태 유지</label>[39m
    [31m                </div>·[39m
    [31m                <button class=\"btn btn-dark w-100\" id=\"admin-login-submit\" type=\"submit\">[39m
    [31m                    <span>로그인</span>[39m
    [31m                </button>[39m
    [31m            </form>·[39m
    [31m            <p class=\"text-muted small mt-4 mb-0\">[39m
    [31m                이 페이지는 서버 렌더링 기반입니다. 로그인 성공 후 관리자 웹앱으로 이동합니다.[39m
    [31m            </p>[39m
    [31m        </div>[39m
    [31m    </div>[39m
    [31m</section>···[39m
    [31m    </main>·[39m
    [31m    <footer class=\"bg-light border-top mt-5 py-5\">·[39m
    [31m        <div class=\"container\">·[39m
    [31m            <div class=\"row g-5\">·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">백원숙 세무회계</h6>·[39m
    [31m                    <p class=\"small text-muted\">·[39m
    [31m                        사업자 기장, 부동산 양도세·증여세,<br />·[39m
    [31m                        종합소득세 전문 상담·[39m
    [31m                    </p>·[39m
    [31m                </div>·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">메뉴</h6>·[39m
    [31m                    <ul class=\"list-unstyled small\">·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/\" class=\"text-decoration-none text-muted\">홈</a></li>·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/about\" class=\"text-decoration-none text-muted\">세무사 소개</a></li>·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/services\" class=\"text-decoration-none text-muted\">전문 서비스</a></li>·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/blog\" class=\"text-decoration-none text-muted\">세무 정보</a></li>·[39m
    [31m                        <li><a href=\"/taxbaik/contact\" class=\"text-decoration-none text-muted\">상담 신청</a></li>·[39m
    [31m                    </ul>·[39m
    [31m                </div>·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">연락처</h6>·[39m
    [31m                    <p class=\"small\">·[39m
    [31m                        📞 <a href=\"tel:010-4122-8268\" class=\"text-decoration-none text-muted\">010-4122-8268</a><br />·[39m
    [31m                        📧 <a href=\"mailto:taxbaik5668@gmail.com\" class=\"text-decoration-none text-muted\">taxbaik5668@gmail.com</a>·[39m
    [31m                    </p>·[39m
    [31m                </div>·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">채널</h6>·[39m
    [31m                    <p class=\"small\">·[39m
    [31m                        <a href=\"https://pf.kakao.com/_xoxchTX\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"btn btn-sm btn-warning me-2\">카카오톡</a>·[39m
    [31m                        <a href=\"https://www.instagram.com/taxtory5668/\" target=\"_blank\" class=\"btn btn-sm btn-outline-secondary\">Instagram</a>·[39m
    [31m                    </p>·[39m
    [31m                </div>·[39m
    [31m            </div>·[39m
    [31m            <hr class=\"my-4\" />·[39m
    [31m            <div class=\"text-center small text-muted\">·[39m
    [31m                <p>© 2026 백원숙 세무회계. All rights reserved.</p>·[39m
    [31m                <div class=\"mb-2\">·[39m
    [31m                    <a href=\"/taxbaik/privacy\" class=\"text-decoration-none text-muted me-2\">개인정보처리방침</a>·[39m
    [31m                    <span class=\"text-muted\">|</span>·[39m
    [31m                    <a href=\"/taxbaik/terms\" class=\"text-decoration-none text-muted ms-2 me-2\">이용약관</a>·[39m
    [31m                    <span class=\"text-muted\">|</span>·[39m
    [31m                </div>·[39m
    [31m                    <div class=\"mt-2 text-muted\" style=\"font-size: 0.75rem; opacity: 0.6;\">·[39m
    [31m                        vunknown · unknown·[39m
    [31m                    </div>·[39m
    [31m            </div>·[39m
    [31m        </div>·[39m
    [31m    </footer>···[39m
    [31m    <!-- Mobile Fixed CTA -->·[39m
    [31m    <div class=\"mobile-cta-bar d-lg-none\">·[39m
    [31m        <a href=\"https://pf.kakao.com/_xoxchTX\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"btn-kakao-mobile\">·[39m
    [31m            💬 카카오 상담하기·[39m
    [31m        </a>·[39m
    [31m    </div>···[39m
    [31m    <script src=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js\" defer></script>·[39m
    [31m    <script src=\"/taxbaik/js/site.js\" asp-append-version=\"true\" defer></script>·······[39m
    [31m</body>·[39m
    [31m</html>·[39m
    [31m"[39m

      16 |
      17 |   const html = await response.text();
    > 18 |   expect(html).toContain('name="username"');
         |                ^
      19 |   expect(html).toContain('name="password"');
      20 |   expect(html).toContain('admin-login-form');
      21 | });
        at C:\Temp\taxbaik\tests\e2e\login-test.spec.ts:18:16

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\login-test-Admin-Login-Pag-9c823-ins-the-form-before-JS-runs-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\login-test-Admin-Login-Pag-9c823-ins-the-form-before-JS-runs-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  44) [iPhone 12] › tests\e2e\login-test.spec.ts:23:5 › Admin Login Page - Full Flow Test ──────────

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\login-test-Admin-Login-Page---Full-Flow-Test-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\login-test-Admin-Login-Page---Full-Flow-Test-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  45) [iPhone 12] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  46) [iPhone 12] › tests\e2e\route-isolation.spec.ts:6:7 › route isolation › public home does not boot the admin app 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\route-isolation-route-isol-340d6-does-not-boot-the-admin-app-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\route-isolation-route-isol-340d6-does-not-boot-the-admin-app-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  47) [iPhone 12] › tests\e2e\route-isolation.spec.ts:14:7 › route isolation › admin login boots the admin app under the admin base path 

    Error: browserType.launch: Executable doesn't exist at C:\Users\kjh20\AppData\Local\ms-playwright\webkit-2227\Playwright.exe
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ <3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\route-isolation-route-isol-5a61e-p-under-the-admin-base-path-iPhone-12\trace.zip
    Usage:

        npx playwright show-trace test-results\route-isolation-route-isol-5a61e-p-under-the-admin-base-path-iPhone-12\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  48) [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:18:7 › admin CRM pages › TaxProfiles page loads with grid and add button 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoContainText[2m([22m[32mexpected[39m[2m)[22m failed

    Locator: locator('body')
    Timeout: 12000ms
    [32m- Expected substring  -  1[39m
    [31m+ Received string     + 40[39m

    [32m- 세무 프로필[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+         Menu[39m
    [31m+         TaxBaik[39m
    [31m+             세무회계 관리 대시보드[39m
    [31m+         공개 사이트[39m
    [31m+             로그아웃[39m
    [31m+[39m
    [31m+     T[39m
    [31m+         TaxBaik[39m
    [31m+             세무 운영 콘솔[39m
    [31m+[39m
    [31m+     개요<path d="M0 0h24v24H0z" fill="none"/><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"/>[39m
    [31m+                     대시보드[39m
    [31m+[39m
    [31m+     공개 사이트[39m
    [31m+         로그아웃요청한 페이지를 찾을 수 없습니다.[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+ [43m        [49m[39m
    [31m+             연결 재설정 중...[39m
    [31m+             새로운 버전으로 업데이트되었습니다.[39m
    [31m+             자동으로 페이지를 새로고침합니다. 잠시만 기다려주세요.[39m
    [31m+ [43m        [49m[39m
    [31m+ [43m    [49m[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+         관리자 화면을 불러오는 중 오류가 발생했습니다. 브라우저 콘솔 또는 서버 client-logs를 확인하세요.[39m
    [31m+         새로고침[39m
    [31m+         닫기[39m
    [31m+ [43m    [49m[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+ [43m    [49m[39m
    [31m+ [43m    [49m[39m
    [31m+[39m
    [31m+[39m
    [31m+[39m

    Call log:
    [2m  - Expect "toContainText" with timeout 12000ms[22m
    [2m  - waiting for locator('body')[22m
    [2m    15 × locator resolved to <body>…</body>[22m
    [2m       - unexpected value "[22m
    [2m    [22m
    [2m        Menu[22m
    [2m        TaxBaik[22m
    [2m            세무회계 관리 대시보드[22m
    [2m        공개 사이트[22m
    [2m            로그아웃[22m
    [2m[22m
    [2m    T[22m
    [2m        TaxBaik[22m
    [2m            세무 운영 콘솔[22m
    [2m[22m
    [2m    개요<path d="M0 0h24v24H0z" fill="none"/><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"/>[22m
    [2m                    대시보드[22m
    [2m[22m
    [2m    공개 사이트[22m
    [2m        로그아웃요청한 페이지를 찾을 수 없습니다.[22m
    [2m[22m
    [2m    [22m
    [2m[22m
    [2m    [22m
    [2m        [22m
    [2m            연결 재설정 중...[22m
    [2m            새로운 버전으로 업데이트되었습니다.[22m
    [2m            자동으로 페이지를 새로고침합니다. 잠시만 기다려주세요.[22m
    [2m        [22m
    [2m    [22m
    [2m[22m
    [2m    [22m
    [2m        관리자 화면을 불러오는 중 오류가 발생했습니다. 브라우저 콘솔 또는 서버 client-logs를 확인하세요.[22m
    [2m        새로고침[22m
    [2m        닫기[22m
    [2m    [22m
    [2m[22m
    [2m    [22m
    [2m    [22m
    [2m    [22m
    [2m[22m
    [2m[22m
    [2m"[22m


       at helpers\admin-auth.ts:98

       96 | export async function waitForAdminSection(page: Page, headingText: string) {
       97 |   const hero = page.locator('.admin-page-hero');
    >  98 |   await expect(page.locator('body')).toContainText(headingText, { timeout: Wait.page });
          |                                      ^
       99 |   await expect(hero).toBeVisible({ timeout: Wait.page });
      100 |   await expect(hero).toContainText(headingText, { timeout: Wait.page });
      101 |   await expect(page.getByRole('heading', { name: headingText, exact: true })).toBeVisible({ timeout: Wait.page });
        at waitForAdminSection (C:\Temp\taxbaik\tests\e2e\helpers\admin-auth.ts:98:38)
        at C:\Temp\taxbaik\tests\e2e\admin-crm-pages.spec.ts:21:30

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-43\traces\c44881337532f92971da-588468c755f68dadd045.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  49) [iPad Pro] › tests\e2e\admin-login.spec.ts:8:7 › admin authentication › logs in through the real browser UI and reaches dashboard 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.admin-page-hero')
    Expected: visible
    Timeout: 60000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 60000ms[22m
    [2m  - waiting for locator('.admin-page-hero')[22m


      75 |     await expect(page).toHaveURL(/\/taxbaik\/admin\/dashboard$/, { timeout: 20_000 });
      76 |     // WASM 부팅에 시간이 걸릴 수 있으므로 더 긴 타임아웃 사용
    > 77 |     await expect(page.locator('.admin-page-hero')).toBeVisible({ timeout: 60_000 });
         |                                                    ^
      78 |     await expect(page.locator('.admin-page-hero')).toContainText('대시보드');
      79 |     await expect(page.getByRole('link', { name: /로그아웃/ })).toBeVisible({ timeout: 30_000 });
      80 |     expect(consoleErrors, 'browser console/page errors').toEqual([]);
        at C:\Temp\taxbaik\tests\e2e\admin-login.spec.ts:77:52

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-45\traces\481c7578028bb96ee688-8f0bec4d85412426b288.network'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  50) [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:10:7 › Admin Pages E2E (Manual) › Login page loads 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('input[placeholder*="사용자"]')
    Expected: visible
    Timeout: 90000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for locator('input[placeholder*="사용자"]')[22m


      11 |     await page.goto(`${baseUrl}/admin/login`);
      12 |     await expect(page.locator('text=관리자 로그인')).toBeVisible();
    > 13 |     await expect(page.locator('input[placeholder*="사용자"]')).toBeVisible();
         |                                                             ^
      14 |   });
      15 |
      16 |   test('Dashboard page loads', async ({ page }) => {
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:13:61

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-46\traces\7ee68a35b274332ffb95-4ba0b267673485ea84d0.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  51) [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:16:7 › Admin Pages E2E (Manual) › Dashboard page loads 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-55\traces\7ee68a35b274332ffb95-5ff12d009707f3d213d3.trace'

    Error: page.fill: Test ended.
    Call log:
    [2m  - waiting for locator('input[name="username"]')[22m


      16 |   test('Dashboard page loads', async ({ page }) => {
      17 |     await page.goto(`${baseUrl}/admin/login`);
    > 18 |     await page.fill('input[name="username"]', username);
         |                ^
      19 |     await page.fill('input[name="password"]', password);
      20 |     await page.click('button[type="submit"]');
      21 |     await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:18:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  52) [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:31:7 › Admin Pages E2E (Manual) › Blog page loads 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-77\traces\7ee68a35b274332ffb95-18215b5101d56ed31536.trace'

    Error: page.fill: Test ended.
    Call log:
    [2m  - waiting for locator('input[name="username"]')[22m


      31 |   test('Blog page loads', async ({ page }) => {
      32 |     await page.goto(`${baseUrl}/admin/login`);
    > 33 |     await page.fill('input[name="username"]', username);
         |                ^
      34 |     await page.fill('input[name="password"]', password);
      35 |     await page.click('button[type="submit"]');
      36 |     await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:33:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  53) [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:46:7 › Admin Pages E2E (Manual) › Inquiry page loads 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-92\traces\7ee68a35b274332ffb95-0f4909ddc2aec6955efd.trace'

    Error: page.fill: Test ended.
    Call log:
    [2m  - waiting for locator('input[name="username"]')[22m


      46 |   test('Inquiry page loads', async ({ page }) => {
      47 |     await page.goto(`${baseUrl}/admin/login`);
    > 48 |     await page.fill('input[name="username"]', username);
         |                ^
      49 |     await page.fill('input[name="password"]', password);
      50 |     await page.click('button[type="submit"]');
      51 |     await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:48:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  54) [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:61:7 › Admin Pages E2E (Manual) › CRM pages load 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-96\traces\7ee68a35b274332ffb95-40a270058bd2b8113462.trace'

    Error: page.fill: Test ended.
    Call log:
    [2m  - waiting for locator('input[name="username"]')[22m


      61 |   test('CRM pages load', async ({ page }) => {
      62 |     await page.goto(`${baseUrl}/admin/login`);
    > 63 |     await page.fill('input[name="username"]', username);
         |                ^
      64 |     await page.fill('input[name="password"]', password);
      65 |     await page.click('button[type="submit"]');
      66 |     await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:63:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  55) [iPad Pro] › tests\e2e\admin-responsive.spec.ts:21:7 › admin responsive design (admin account) › dashboard loads correctly on all viewports 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.admin-page-hero')
    Expected: visible
    Timeout: 30000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 30000ms[22m
    [2m  - waiting for locator('.admin-page-hero')[22m


      29 |     // 2. 대시보드로 이동 및 최초 로드 대기
      30 |     await page.goto(`${baseUrl}/admin/dashboard`);
    > 31 |     await expect(page.locator('.admin-page-hero')).toBeVisible({ timeout: 30_000 });
         |                                                    ^
      32 |
      33 |     // 3. 각 디바이스별로 뷰포트를 변경하며 검증 (새로고침 없이 초고속 검증)
      34 |     for (const device of deviceTests) {
        at C:\Temp\taxbaik\tests\e2e\admin-responsive.spec.ts:31:52

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-48\traces\da7c59ce61d93dc7813a-770409b9fcdf90daf161-recording2.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  56) [iPad Pro] › tests\e2e\admin-responsive.spec.ts:85:7 › admin responsive design (admin account) › drawer responsiveness on mobile 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.admin-page-hero')
    Expected: visible
    Timeout: 30000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 30000ms[22m
    [2m  - waiting for locator('.admin-page-hero')[22m


      89 |     await page.setViewportSize({ width: 375, height: 667 });
      90 |     await page.goto(`${baseUrl}/admin/dashboard`);
    > 91 |     await expect(page.locator('.admin-page-hero')).toBeVisible({ timeout: 30_000 });
         |                                                    ^
      92 |
      93 |     // 모바일에서는 메뉴 토글 버튼이 있어야 함
      94 |     const menuButton = page.locator('.admin-menu-button');
        at C:\Temp\taxbaik\tests\e2e\admin-responsive.spec.ts:91:52

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-51\traces\da7c59ce61d93dc7813a-eaa75fcdf9efb149dd19.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  57) [iPad Pro] › tests\e2e\admin-responsive.spec.ts:103:7 › admin responsive design (admin account) › form inputs are accessible on mobile 

    TimeoutError: page.waitForSelector: Timeout 30000ms exceeded.
    Call log:
    [2m  - waiting for locator('input[type="text"], textarea, .mud-input-base, .mud-field') to be visible[22m


      107 |     await page.setViewportSize({ width: 480, height: 853 });
      108 |     await page.goto(`${baseUrl}/admin/faqs/create`);
    > 109 |     await page.waitForSelector('input[type="text"], textarea, .mud-input-base, .mud-field', { timeout: 30_000 });
          |                ^
      110 |
      111 |     const inputs = page.locator('input[type="text"], textarea, .mud-input-base, .mud-field');
      112 |     const inputCount = await inputs.count();
        at C:\Temp\taxbaik\tests\e2e\admin-responsive.spec.ts:109:16

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-54\traces\da7c59ce61d93dc7813a-886aa013d83fc75561eb.network'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  58) [iPad Pro] › tests\e2e\admin-responsive.spec.ts:126:7 › admin responsive design (admin account) › buttons are clickable on all viewports 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.admin-page-hero')
    Expected: visible
    Timeout: 30000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 30000ms[22m
    [2m  - waiting for locator('.admin-page-hero')[22m


      137 |       await page.setViewportSize(viewport);
      138 |       await page.goto(`${baseUrl}/admin/dashboard`);
    > 139 |       await expect(page.locator('.admin-page-hero')).toBeVisible({ timeout: 30_000 });
          |                                                      ^
      140 |
      141 |       const logoutButton = page.locator('a:has-text("로그아웃"), button:has-text("로그아웃")').first();
      142 |       if (await logoutButton.count() > 0) {
        at C:\Temp\taxbaik\tests\e2e\admin-responsive.spec.ts:139:54

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-60\traces\da7c59ce61d93dc7813a-436330bb345d3c6896ba.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  59) [iPad Pro] › tests\e2e\blog-seo.spec.ts:6:7 › blog seo › exposes title description and canonical on blog detail pages 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('a[href^="/taxbaik/blog/"]').filter({ hasText: '글 내용 보기' }).first()
    Expected: visible
    Timeout: 90000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for locator('a[href^="/taxbaik/blog/"]').filter({ hasText: '글 내용 보기' }).first()[22m


       7 |     await page.goto(`${baseUrl}/blog`);
       8 |     const firstPost = page.locator('a[href^="/taxbaik/blog/"]').filter({ hasText: '글 내용 보기' }).first();
    >  9 |     await expect(firstPost).toBeVisible();
         |                             ^
      10 |     const detailHref = await firstPost.getAttribute('href');
      11 |     expect(detailHref).toMatch(/^\/taxbaik\/blog\/[a-z0-9-]+$/);
      12 |     const detailPath = detailHref?.replace('/taxbaik', '') ?? '/blog';
        at C:\Temp\taxbaik\tests\e2e\blog-seo.spec.ts:9:29

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-50\traces\1d0d3a59ebe6e0e691d7-22052e60a47249096571.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  60) [iPad Pro] › tests\e2e\blog-validation.spec.ts:9:5 › Blog Management Full Flow - Real Domain Validation 

    Error: page.evaluate: Error: login failed: 400 Bad Request
        at eval (eval at evaluate (:290:30), <anonymous>:17:15)
        at async <anonymous>:316:30
        at eval (eval at evaluate (:290:30), <anonymous>:17:15)
        at async <anonymous>:316:30
        at loginThroughAdminUi (C:\Temp\taxbaik\tests\e2e\helpers\admin-auth.ts:53:30)
        at C:\Temp\taxbaik\tests\e2e\blog-validation.spec.ts:26:3

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-52\traces\ab7c3855fc28a1b2454e-6eb3ad0a4da223cfb76a.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  61) [iPad Pro] › tests\e2e\contact-submit.spec.ts:27:7 › contact submit › creates an inquiry and shows it in admin list 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.mud-main-content').getByText('문의 관리').first()
    Expected: visible
    Timeout: 20000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 20000ms[22m
    [2m  - waiting for locator('.mud-main-content').getByText('문의 관리').first()[22m


      53 |     await loginThroughAdminUi(page, baseUrl, username, password);
      54 |     await navigateInBlazor(page, `${baseUrl}/admin/inquiries`);
    > 55 |     await expect(page.locator('.mud-main-content').getByText('문의 관리').first()).toBeVisible({ timeout: 20_000 });
         |                                                                                ^
      56 |   });
      57 |
      58 |   test('submitting the public Contact.cshtml form shows the success message', async ({ page }) => {
        at C:\Temp\taxbaik\tests\e2e\contact-submit.spec.ts:55:80

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, copyfile 'C:\Temp\taxbaik\test-results\.playwright-artifacts-49\traces\78ff188543f551bce0b7-23296404445e8a403091-recording4.network' -> 'C:\Temp\taxbaik\test-results\.playwright-artifacts-49\traces\78ff188543f551bce0b7-23296404445e8a403091-recording4-pwnetcopy-1.network'

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, mkdir 'C:\Temp\taxbaik\test-results\.playwright-artifacts-49\traces'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  62) [iPad Pro] › tests\e2e\dashboard-check.spec.ts:4:5 › check dashboard metrics ─────────────────

    TimeoutError: page.waitForSelector: Timeout 5000ms exceeded.
    Call log:
    [2m  - waiting for locator('.admin-page-hero') to be visible[22m


      11 |
      12 |   // Wait for page load
    > 13 |   await page.waitForSelector('.admin-page-hero', { timeout: 5000 });
         |              ^
      14 |   await page.waitForTimeout(2000);
      15 |
      16 |   // Check for metric cards
        at C:\Temp\taxbaik\tests\e2e\dashboard-check.spec.ts:13:14

    Error: ENOENT: no such file or directory, unlink 'C:\Temp\taxbaik\test-results\.playwright-artifacts-53\a86f329d9a4c22b94c4b3927995dd73d.zip'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\dashboard-check-check-dashboard-metrics-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
    test-results\dashboard-check-check-dashboard-metrics-iPad-Pro\video.webm
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\dashboard-check-check-dashboard-metrics-iPad-Pro\error-context.md

  63) [iPad Pro] › tests\e2e\full-admin-pages.spec.ts:5:5 › production: verify all admin pages load correctly 

    Error: page.evaluate: Error: login failed: 400 Bad Request
        at eval (eval at evaluate (:290:30), <anonymous>:17:15)
        at async <anonymous>:316:30
        at eval (eval at evaluate (:290:30), <anonymous>:17:15)
        at async <anonymous>:316:30
        at loginThroughAdminUi (C:\Temp\taxbaik\tests\e2e\helpers\admin-auth.ts:53:30)
        at C:\Temp\taxbaik\tests\e2e\full-admin-pages.spec.ts:10:3

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
    test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-iPad-Pro\video.webm
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-iPad-Pro\error-context.md

    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  64) [iPad Pro] › tests\e2e\full-user-flow.spec.ts:6:7 › 프로덕션 사용자 흐름 테스트 › 홈페이지 → 로그인 → 대시보드 → 블로그 CRUD 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('text=블로그 관리')
    Expected: visible
    Timeout: 30000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 30000ms[22m
    [2m  - waiting for locator('text=블로그 관리')[22m


      39 |     // 네비게이션 메뉴 확인
      40 |     const blogLink = page.locator('text=블로그 관리');
    > 41 |     await expect(blogLink).toBeVisible({ timeout: 30000 });
         |                            ^
      42 |     console.log('✓ 블로그 관리 메뉴 표시');
      43 |
      44 |     // 블로그 페이지로 이동
        at C:\Temp\taxbaik\tests\e2e\full-user-flow.spec.ts:41:28

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-58\traces\c6681a4a350aa86369bc-70d432ea5f95b6ea8f74.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\full-user-flow-프로덕션-사용자-흐름-테스트-홈페이지-→-로그인-→-대시보드-→-블로그-CRUD-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\full-user-flow-프로덕션-사용자-흐름-테스트-홈페이지-→-로그인-→-대시보드-→-블로그-CRUD-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\full-user-flow-프로덕션-사용자-흐름-테스트-홈페이지-→-로그인-→-대시보드-→-블로그-CRUD-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\full-user-flow-프로덕션-사용자-흐름-테스트-홈페이지-→-로그인-→-대시보드-→-블로그-CRUD-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  65) [iPad Pro] › tests\e2e\inquiry-detail.spec.ts:9:7 › inquiry detail › shows the created inquiry and admin action links 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: getByText('Detail-1783485797354', { exact: true }).first()
    Expected: visible
    Timeout: 90000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for getByText('Detail-1783485797354', { exact: true }).first()[22m


      37 |
      38 |     await expect(page).toHaveURL(/\/taxbaik\/admin\/inquiries\/\d+$/);
    > 39 |     await expect(page.getByText(name, { exact: true }).first()).toBeVisible();
         |                                                                 ^
      40 |     await expect(page.getByText(phone, { exact: true }).first()).toBeVisible();
      41 |     await expect(page.getByText(message, { exact: true }).first()).toBeVisible();
      42 |     await expect(page.getByRole('button', { name: '신규' })).toBeVisible();
        at C:\Temp\taxbaik\tests\e2e\inquiry-detail.spec.ts:39:65

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, copyfile 'C:\Temp\taxbaik\test-results\.playwright-artifacts-57\traces\0b7ed30a9e279ee14eeb-d807baf4e400acc7b693-recording2.network' -> 'C:\Temp\taxbaik\test-results\.playwright-artifacts-57\traces\0b7ed30a9e279ee14eeb-d807baf4e400acc7b693-recording2-pwnetcopy-1.network'

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-57\traces\0b7ed30a9e279ee14eeb-d807baf4e400acc7b693-recording1.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\inquiry-detail-inquiry-det-43d69-uiry-and-admin-action-links-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\inquiry-detail-inquiry-det-43d69-uiry-and-admin-action-links-iPad-Pro\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\inquiry-detail-inquiry-det-43d69-uiry-and-admin-action-links-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\inquiry-detail-inquiry-det-43d69-uiry-and-admin-action-links-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  66) [iPad Pro] › tests\e2e\login-test.spec.ts:8:5 › Admin Login Page - prerendered HTML contains the form before JS runs 

    Error: [2mexpect([22m[31mreceived[39m[2m).[22mtoContain[2m([22m[32mexpected[39m[2m) // indexOf[22m

    Expected substring: [32m"name=\"username\""[39m
    Received string:    [31m"<!DOCTYPE html>·[39m
    [31m<html lang=\"ko\">·[39m
    [31m<head>·[39m
    [31m    <meta charset=\"utf-8\" />·[39m
    [31m    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />·[39m
    [31m    <title>관리자 로그인</title>·[39m
    [31m    <meta name=\"description\" content=\"관리자 로그인 페이지입니다.\" />·[39m
    [31m    <meta name=\"keywords\" content=\"백원숙 세무회계, 세무사, 사업자 기장, 양도소득세, 증여세, 상속세, 종합소득세, 절세 상담, 세무 대리\" />·······[39m
    [31m    <!-- Open Graph / Facebook -->·[39m
    [31m    <meta property=\"og:type\" content=\"website\" />·[39m
    [31m    <meta property=\"og:title\" content=\"관리자 로그인\" />·[39m
    [31m    <meta property=\"og:description\" content=\"관리자 로그인 페이지입니다.\" />·[39m
    [31m    <meta property=\"og:image\" content=\"https://www.taxbaik.com/taxbaik/images/og-image.jpg\" />·[39m
    [31m    <meta property=\"og:url\" content=\"https://www.taxbaik.com/taxbaik/\" />·······[39m
    [31m    <!-- Twitter -->·[39m
    [31m    <meta property=\"twitter:card\" content=\"summary_large_image\" />·[39m
    [31m    <meta property=\"twitter:title\" content=\"관리자 로그인\" />·[39m
    [31m    <meta property=\"twitter:description\" content=\"관리자 로그인 페이지입니다.\" />·[39m
    [31m    <meta property=\"twitter:image\" content=\"https://www.taxbaik.com/taxbaik/images/og-image.jpg\" />···[39m
    [31m    <!-- 검색엔진 등록용 소유권 인증 메타 태그 (발급받으신 토큰이 있으면 아래 content에 넣어 주시면 됩니다) -->·[39m
    [31m    <!-- <meta name=\"naver-site-verification\" content=\"네이버_서치어드바이저_토큰_입력\" /> -->·[39m
    [31m    <!-- <meta name=\"google-site-verification\" content=\"구글_서치콘솔_토큰_입력\" /> -->···[39m
    [31m    <meta name=\"robots\" content=\"index, follow\" />·[39m
    [31m    <meta name=\"theme-color\" content=\"#C89D6E\" />·[39m
    [31m    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/taxbaik/favicon.svg\" />·[39m
    [31m    <link rel=\"alternate icon\" href=\"/taxbaik/favicon.ico\" />···[39m
    [31m    <!-- RSS Feed -->·[39m
    [31m    <link rel=\"alternate\" type=\"application/rss+xml\" title=\"백원숙 세무회계 블로그\" href=\"/taxbaik/rss.xml\" />·[39m
    [31m    <link rel=\"alternate\" type=\"application/rss+xml\" title=\"TaxBaik Blog Feed\" href=\"/taxbaik/feed.xml\" />·[39m
    [31m    <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\" />·[39m
    [31m    <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin />·[39m
    [31m    <link rel=\"dns-prefetch\" href=\"https://cdn.jsdelivr.net\" />·[39m
    [31m    <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Noto+Sans+KR:wght@400;500;700&family=Outfit:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\" />·[39m
    [31m    <link rel=\"canonical\" href=\"http://localhost:5001/taxbaik/admin/login\" />·[39m
    [31m    <link href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css\" rel=\"stylesheet\" />·[39m
    [31m    <link rel=\"stylesheet\" href=\"/taxbaik/css/site.css\" asp-append-version=\"true\" />···[39m
    [31m    <!-- 구조화된 데이터 (JSON-LD Schema Markup) -->·[39m
    [31m    <script type=\"application/ld+json\">·[39m
    [31m    {·[39m
    [31m      \"@context\": \"https://schema.org\",·[39m
    [31m      \"@type\": \"ProfessionalService\",·[39m
    [31m      \"name\": \"백원숙 세무회계\",·[39m
    [31m      \"description\": \"사업자 기장, 부동산 양도세·증여세, 종합소득세 전문 상담 세무사\",·[39m
    [31m      \"url\": \"https://www.taxbaik.com/taxbaik/\",·[39m
    [31m      \"telephone\": \"010-4122-8268\",·[39m
    [31m      \"email\": \"taxbaik5668@gmail.com\",·[39m
    [31m      \"address\": {·[39m
    [31m        \"@type\": \"PostalAddress\",·[39m
    [31m        \"addressCountry\": \"KR\"·[39m
    [31m      },·[39m
    [31m      \"sameAs\": [·[39m
    [31m        \"https://www.instagram.com/taxtory5668/\",·[39m
    [31m        \"https://pf.kakao.com/_xoxchTX\"·[39m
    [31m      ]·[39m
    [31m    }·[39m
    [31m    </script>···[39m
    [31m    <!-- Google tag (gtag.js) -->·[39m
    [31m    <script async src=\"https://www.googletagmanager.com/gtag/js?id=G-25KRKY45D7\"></script>·[39m
    [31m    <script>·[39m
    [31m      window.dataLayer = window.dataLayer || [];·[39m
    [31m      function gtag(){dataLayer.push(arguments);}·[39m
    [31m      gtag('js', new Date());···[39m
    [31m      gtag('config', 'G-25KRKY45D7');·[39m
    [31m    </script>·[39m
    [31m</head>·[39m
    [31m<body class=\"with-mobile-cta\" data-kakao-url=\"https://pf.kakao.com/_xoxchTX\">·[39m
    [31m    <partial name=\"_Header\" />·[39m
    [31m    <main role=\"main\" class=\"pb-5\">··········[39m
    [31m<section class=\"container py-5\" style=\"max-width: 560px;\">[39m
    [31m    <div class=\"card shadow-sm border-0\">[39m
    [31m        <div class=\"card-body p-4 p-md-5\">[39m
    [31m            <div class=\"mb-4\">[39m
    [31m                <p class=\"text-uppercase text-muted small mb-1\">TaxBaik Admin</p>[39m
    [31m                <h1 class=\"h3 fw-bold mb-2\">관리자 로그인</h1>[39m
    [31m                <p class=\"text-muted mb-0\">로그인 후 대시보드와 관리자 기능을 이용할 수 있습니다.</p>[39m
    [31m            </div>··[39m
    [31m            <form id=\"admin-login-form\" method=\"post\" class=\"vstack gap-3\">[39m
    [31m                <input name=\"__RequestVerificationToken\" type=\"hidden\" value=\"CfDJ8MSeutqIyfZKsHr5RAKz7bMWYo1PhUG5M5DyznIQXuRLU-vNNKIteKPbxrkz82V-HsO-UenmG4Wndy6sW04uv_XjVcBevOb7mYQTzZ57l5uwOYPvwe5G5_n1g8d84M30MZ10ZaLijn-KgaCFdlss4iY\" />[39m
    [31m                <input type=\"hidden\" id=\"ReturnUrl\" name=\"ReturnUrl\" />·[39m
    [31m                <div>[39m
    [31m                    <label class=\"form-label\" for=\"Username\">사용자명</label>[39m
    [31m                    <input class=\"form-control\" id=\"Username\" name=\"Username\" value=\"\" autocomplete=\"username\" />[39m
    [31m                    <span class=\"text-danger small\"></span>[39m
    [31m                </div>·[39m
    [31m                <div>[39m
    [31m                    <label class=\"form-label\" for=\"Password\">비밀번호</label>[39m
    [31m                    <input class=\"form-control\" id=\"Password\" name=\"Password\" type=\"password\" autocomplete=\"current-password\" />[39m
    [31m                    <span class=\"text-danger small\"></span>[39m
    [31m                </div>·[39m
    [31m                <div class=\"form-check\">[39m
    [31m                    <input class=\"form-check-input\" id=\"RememberMe\" name=\"RememberMe\" type=\"checkbox\" value=\"true\" checked=\"checked\" />[39m
    [31m                    <label class=\"form-check-label\" for=\"RememberMe\">로그인 상태 유지</label>[39m
    [31m                </div>·[39m
    [31m                <button class=\"btn btn-dark w-100\" id=\"admin-login-submit\" type=\"submit\">[39m
    [31m                    <span>로그인</span>[39m
    [31m                </button>[39m
    [31m            </form>·[39m
    [31m            <p class=\"text-muted small mt-4 mb-0\">[39m
    [31m                이 페이지는 서버 렌더링 기반입니다. 로그인 성공 후 관리자 웹앱으로 이동합니다.[39m
    [31m            </p>[39m
    [31m        </div>[39m
    [31m    </div>[39m
    [31m</section>···[39m
    [31m    </main>·[39m
    [31m    <footer class=\"bg-light border-top mt-5 py-5\">·[39m
    [31m        <div class=\"container\">·[39m
    [31m            <div class=\"row g-5\">·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">백원숙 세무회계</h6>·[39m
    [31m                    <p class=\"small text-muted\">·[39m
    [31m                        사업자 기장, 부동산 양도세·증여세,<br />·[39m
    [31m                        종합소득세 전문 상담·[39m
    [31m                    </p>·[39m
    [31m                </div>·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">메뉴</h6>·[39m
    [31m                    <ul class=\"list-unstyled small\">·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/\" class=\"text-decoration-none text-muted\">홈</a></li>·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/about\" class=\"text-decoration-none text-muted\">세무사 소개</a></li>·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/services\" class=\"text-decoration-none text-muted\">전문 서비스</a></li>·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/blog\" class=\"text-decoration-none text-muted\">세무 정보</a></li>·[39m
    [31m                        <li><a href=\"/taxbaik/contact\" class=\"text-decoration-none text-muted\">상담 신청</a></li>·[39m
    [31m                    </ul>·[39m
    [31m                </div>·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">연락처</h6>·[39m
    [31m                    <p class=\"small\">·[39m
    [31m                        📞 <a href=\"tel:010-4122-8268\" class=\"text-decoration-none text-muted\">010-4122-8268</a><br />·[39m
    [31m                        📧 <a href=\"mailto:taxbaik5668@gmail.com\" class=\"text-decoration-none text-muted\">taxbaik5668@gmail.com</a>·[39m
    [31m                    </p>·[39m
    [31m                </div>·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">채널</h6>·[39m
    [31m                    <p class=\"small\">·[39m
    [31m                        <a href=\"https://pf.kakao.com/_xoxchTX\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"btn btn-sm btn-warning me-2\">카카오톡</a>·[39m
    [31m                        <a href=\"https://www.instagram.com/taxtory5668/\" target=\"_blank\" class=\"btn btn-sm btn-outline-secondary\">Instagram</a>·[39m
    [31m                    </p>·[39m
    [31m                </div>·[39m
    [31m            </div>·[39m
    [31m            <hr class=\"my-4\" />·[39m
    [31m            <div class=\"text-center small text-muted\">·[39m
    [31m                <p>© 2026 백원숙 세무회계. All rights reserved.</p>·[39m
    [31m                <div class=\"mb-2\">·[39m
    [31m                    <a href=\"/taxbaik/privacy\" class=\"text-decoration-none text-muted me-2\">개인정보처리방침</a>·[39m
    [31m                    <span class=\"text-muted\">|</span>·[39m
    [31m                    <a href=\"/taxbaik/terms\" class=\"text-decoration-none text-muted ms-2 me-2\">이용약관</a>·[39m
    [31m                    <span class=\"text-muted\">|</span>·[39m
    [31m                </div>·[39m
    [31m                    <div class=\"mt-2 text-muted\" style=\"font-size: 0.75rem; opacity: 0.6;\">·[39m
    [31m                        vunknown · unknown·[39m
    [31m                    </div>·[39m
    [31m            </div>·[39m
    [31m        </div>·[39m
    [31m    </footer>···[39m
    [31m    <!-- Mobile Fixed CTA -->·[39m
    [31m    <div class=\"mobile-cta-bar d-lg-none\">·[39m
    [31m        <a href=\"https://pf.kakao.com/_xoxchTX\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"btn-kakao-mobile\">·[39m
    [31m            💬 카카오 상담하기·[39m
    [31m        </a>·[39m
    [31m    </div>···[39m
    [31m    <script src=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js\" defer></script>·[39m
    [31m    <script src=\"/taxbaik/js/site.js\" asp-append-version=\"true\" defer></script>·······[39m
    [31m</body>·[39m
    [31m</html>·[39m
    [31m"[39m

      16 |
      17 |   const html = await response.text();
    > 18 |   expect(html).toContain('name="username"');
         |                ^
      19 |   expect(html).toContain('name="password"');
      20 |   expect(html).toContain('admin-login-form');
      21 | });
        at C:\Temp\taxbaik\tests\e2e\login-test.spec.ts:18:16

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\login-test-Admin-Login-Pag-9c823-ins-the-form-before-JS-runs-iPad-Pro\trace.zip
    Usage:

        npx playwright show-trace test-results\login-test-Admin-Login-Pag-9c823-ins-the-form-before-JS-runs-iPad-Pro\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  67) [iPad Pro] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: getByRole('link', { name: /상담 신청|무료 상담 신청/ })
    Expected: visible
    Error: strict mode violation: getByRole('link', { name: /상담 신청|무료 상담 신청/ }) resolved to 2 elements:
        1) <a href="/taxbaik/contact" class="btn btn-primary btn-lg">상담 신청하기</a> aka getByRole('link', { name: '상담 신청하기' })
        2) <a href="/taxbaik/contact" class="text-decoration-none text-muted">상담 신청</a> aka getByRole('link', { name: '상담 신청', exact: true })

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for getByRole('link', { name: /상담 신청|무료 상담 신청/ })[22m


      10 |     await expect(page).not.toHaveTitle(/관리자/);
      11 |     await expect(page.getByRole('heading', { name: /세금과 자산|백원숙 세무회계/ })).toBeVisible();
    > 12 |     // 상담 신청 버튼: 첫 번째 "상담 신청하기" 버튼만 선택 (strict mode 위반 방지)
         |                                                                     ^
      13 |     await expect(page.getByRole('link', { name: '상담 신청하기' })).toBeVisible();
      14 |     await expect(page.locator('meta[name="description"]')).toHaveAttribute('content', /사업자 기장|부동산|종합소득세/);
      15 |     await expect(page.getByRole('heading', { name: /상담 과정/ })).toBeVisible();
        at C:\Temp\taxbaik\tests\e2e\public-smoke.spec.ts:12:70

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-62\traces\9069cf5df66af74e1237-2f2783f0b169124e1d32.network'

    Error: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-62\d94800b423b32bf1c2bb3ddf72374f47.zip'

    [31mTest timeout of 180000ms exceeded.[39m

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-iPad-Pro\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-iPad-Pro\error-context.md

  68) [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:18:7 › admin CRM pages › TaxProfiles page loads with grid and add button 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoContainText[2m([22m[32mexpected[39m[2m)[22m failed

    Locator: locator('body')
    Timeout: 12000ms
    [32m- Expected substring  -  1[39m
    [31m+ Received string     + 40[39m

    [32m- 세무 프로필[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+         Menu[39m
    [31m+         TaxBaik[39m
    [31m+             세무회계 관리 대시보드[39m
    [31m+         공개 사이트[39m
    [31m+             로그아웃[39m
    [31m+[39m
    [31m+     T[39m
    [31m+         TaxBaik[39m
    [31m+             세무 운영 콘솔[39m
    [31m+[39m
    [31m+     개요<path d="M0 0h24v24H0z" fill="none"/><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"/>[39m
    [31m+                     대시보드[39m
    [31m+[39m
    [31m+     공개 사이트[39m
    [31m+         로그아웃요청한 페이지를 찾을 수 없습니다.[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+ [43m        [49m[39m
    [31m+             연결 재설정 중...[39m
    [31m+             새로운 버전으로 업데이트되었습니다.[39m
    [31m+             자동으로 페이지를 새로고침합니다. 잠시만 기다려주세요.[39m
    [31m+ [43m        [49m[39m
    [31m+ [43m    [49m[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+         관리자 화면을 불러오는 중 오류가 발생했습니다. 브라우저 콘솔 또는 서버 client-logs를 확인하세요.[39m
    [31m+         새로고침[39m
    [31m+         닫기[39m
    [31m+ [43m    [49m[39m
    [31m+[39m
    [31m+ [43m    [49m[39m
    [31m+ [43m    [49m[39m
    [31m+ [43m    [49m[39m
    [31m+[39m
    [31m+[39m
    [31m+[39m

    Call log:
    [2m  - Expect "toContainText" with timeout 12000ms[22m
    [2m  - waiting for locator('body')[22m
    [2m    15 × locator resolved to <body>…</body>[22m
    [2m       - unexpected value "[22m
    [2m    [22m
    [2m        Menu[22m
    [2m        TaxBaik[22m
    [2m            세무회계 관리 대시보드[22m
    [2m        공개 사이트[22m
    [2m            로그아웃[22m
    [2m[22m
    [2m    T[22m
    [2m        TaxBaik[22m
    [2m            세무 운영 콘솔[22m
    [2m[22m
    [2m    개요<path d="M0 0h24v24H0z" fill="none"/><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"/>[22m
    [2m                    대시보드[22m
    [2m[22m
    [2m    공개 사이트[22m
    [2m        로그아웃요청한 페이지를 찾을 수 없습니다.[22m
    [2m[22m
    [2m    [22m
    [2m[22m
    [2m    [22m
    [2m        [22m
    [2m            연결 재설정 중...[22m
    [2m            새로운 버전으로 업데이트되었습니다.[22m
    [2m            자동으로 페이지를 새로고침합니다. 잠시만 기다려주세요.[22m
    [2m        [22m
    [2m    [22m
    [2m[22m
    [2m    [22m
    [2m        관리자 화면을 불러오는 중 오류가 발생했습니다. 브라우저 콘솔 또는 서버 client-logs를 확인하세요.[22m
    [2m        새로고침[22m
    [2m        닫기[22m
    [2m    [22m
    [2m[22m
    [2m    [22m
    [2m    [22m
    [2m    [22m
    [2m[22m
    [2m[22m
    [2m"[22m


       at helpers\admin-auth.ts:98

       96 | export async function waitForAdminSection(page: Page, headingText: string) {
       97 |   const hero = page.locator('.admin-page-hero');
    >  98 |   await expect(page.locator('body')).toContainText(headingText, { timeout: Wait.page });
          |                                      ^
       99 |   await expect(hero).toBeVisible({ timeout: Wait.page });
      100 |   await expect(hero).toContainText(headingText, { timeout: Wait.page });
      101 |   await expect(page.getByRole('heading', { name: headingText, exact: true })).toBeVisible({ timeout: Wait.page });
        at waitForAdminSection (C:\Temp\taxbaik\tests\e2e\helpers\admin-auth.ts:98:38)
        at C:\Temp\taxbaik\tests\e2e\admin-crm-pages.spec.ts:21:30

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
    test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-Galaxy-S9-\video.webm
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-Galaxy-S9-\error-context.md

    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-crm-pages-admin-CRM--6eedf-ds-with-grid-and-add-button-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  69) [Galaxy S9+] › tests\e2e\admin-login.spec.ts:8:7 › admin authentication › logs in through the real browser UI and reaches dashboard 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.admin-page-hero')
    Expected: visible
    Timeout: 60000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 60000ms[22m
    [2m  - waiting for locator('.admin-page-hero')[22m


      75 |     await expect(page).toHaveURL(/\/taxbaik\/admin\/dashboard$/, { timeout: 20_000 });
      76 |     // WASM 부팅에 시간이 걸릴 수 있으므로 더 긴 타임아웃 사용
    > 77 |     await expect(page.locator('.admin-page-hero')).toBeVisible({ timeout: 60_000 });
         |                                                    ^
      78 |     await expect(page.locator('.admin-page-hero')).toContainText('대시보드');
      79 |     await expect(page.getByRole('link', { name: /로그아웃/ })).toBeVisible({ timeout: 30_000 });
      80 |     expect(consoleErrors, 'browser console/page errors').toEqual([]);
        at C:\Temp\taxbaik\tests\e2e\admin-login.spec.ts:77:52

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-69\traces\481c7578028bb96ee688-21efb93ebc280c233b4f.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-login-admin-authenti-8d2e4-er-UI-and-reaches-dashboard-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  70) [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:10:7 › Admin Pages E2E (Manual) › Login page loads 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('input[placeholder*="사용자"]')
    Expected: visible
    Timeout: 90000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for locator('input[placeholder*="사용자"]')[22m


      11 |     await page.goto(`${baseUrl}/admin/login`);
      12 |     await expect(page.locator('text=관리자 로그인')).toBeVisible();
    > 13 |     await expect(page.locator('input[placeholder*="사용자"]')).toBeVisible();
         |                                                             ^
      14 |   });
      15 |
      16 |   test('Dashboard page loads', async ({ page }) => {
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:13:61

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-67\traces\7ee68a35b274332ffb95-453b44d0af829cd0f028.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Login-page-loads-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  71) [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:16:7 › Admin Pages E2E (Manual) › Dashboard page loads 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-75\traces\7ee68a35b274332ffb95-7fc3ff5c17b268218071.trace'

    Error: page.fill: Test ended.
    Call log:
    [2m  - waiting for locator('input[name="username"]')[22m


      16 |   test('Dashboard page loads', async ({ page }) => {
      17 |     await page.goto(`${baseUrl}/admin/login`);
    > 18 |     await page.fill('input[name="username"]', username);
         |                ^
      19 |     await page.fill('input[name="password"]', password);
      20 |     await page.click('button[type="submit"]');
      21 |     await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:18:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-P-45f66-Manual-Dashboard-page-loads-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  72) [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:31:7 › Admin Pages E2E (Manual) › Blog page loads 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-91\traces\7ee68a35b274332ffb95-7396043c428b03ef9c5f.trace'

    Error: page.fill: Test ended.
    Call log:
    [2m  - waiting for locator('input[name="username"]')[22m


      31 |   test('Blog page loads', async ({ page }) => {
      32 |     await page.goto(`${baseUrl}/admin/login`);
    > 33 |     await page.fill('input[name="username"]', username);
         |                ^
      34 |     await page.fill('input[name="password"]', password);
      35 |     await page.click('button[type="submit"]');
      36 |     await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:33:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Blog-page-loads-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  73) [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:46:7 › Admin Pages E2E (Manual) › Inquiry page loads 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-95\traces\7ee68a35b274332ffb95-08f8f568fc9a820f3064.trace'

    Error: page.fill: Test ended.
    Call log:
    [2m  - waiting for locator('input[name="username"]')[22m


      46 |   test('Inquiry page loads', async ({ page }) => {
      47 |     await page.goto(`${baseUrl}/admin/login`);
    > 48 |     await page.fill('input[name="username"]', username);
         |                ^
      49 |     await page.fill('input[name="password"]', password);
      50 |     await page.click('button[type="submit"]');
      51 |     await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:48:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-Inquiry-page-loads-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  74) [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:61:7 › Admin Pages E2E (Manual) › CRM pages load 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-97\traces\7ee68a35b274332ffb95-d91e7d42ac0cbdee3499.trace'

    Error: page.fill: Test ended.
    Call log:
    [2m  - waiting for locator('input[name="username"]')[22m


      61 |   test('CRM pages load', async ({ page }) => {
      62 |     await page.goto(`${baseUrl}/admin/login`);
    > 63 |     await page.fill('input[name="username"]', username);
         |                ^
      64 |     await page.fill('input[name="password"]', password);
      65 |     await page.click('button[type="submit"]');
      66 |     await navigateInBlazor(page, `${baseUrl}/admin/dashboard`);
        at C:\Temp\taxbaik\tests\e2e\admin-pages-manual.spec.ts:63:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-pages-manual-Admin-Pages-E2E-Manual-CRM-pages-load-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  75) [Galaxy S9+] › tests\e2e\admin-responsive.spec.ts:21:7 › admin responsive design (admin account) › dashboard loads correctly on all viewports 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.admin-page-hero')
    Expected: visible
    Timeout: 30000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 30000ms[22m
    [2m  - waiting for locator('.admin-page-hero')[22m


      29 |     // 2. 대시보드로 이동 및 최초 로드 대기
      30 |     await page.goto(`${baseUrl}/admin/dashboard`);
    > 31 |     await expect(page.locator('.admin-page-hero')).toBeVisible({ timeout: 30_000 });
         |                                                    ^
      32 |
      33 |     // 3. 각 디바이스별로 뷰포트를 변경하며 검증 (새로고침 없이 초고속 검증)
      34 |     for (const device of deviceTests) {
        at C:\Temp\taxbaik\tests\e2e\admin-responsive.spec.ts:31:52

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-68\traces\da7c59ce61d93dc7813a-f85eee42ee4dd3d6cf11-recording2.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-3fad2--correctly-on-all-viewports-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  76) [Galaxy S9+] › tests\e2e\admin-responsive.spec.ts:85:7 › admin responsive design (admin account) › drawer responsiveness on mobile 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.admin-page-hero')
    Expected: visible
    Timeout: 30000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 30000ms[22m
    [2m  - waiting for locator('.admin-page-hero')[22m


      89 |     await page.setViewportSize({ width: 375, height: 667 });
      90 |     await page.goto(`${baseUrl}/admin/dashboard`);
    > 91 |     await expect(page.locator('.admin-page-hero')).toBeVisible({ timeout: 30_000 });
         |                                                    ^
      92 |
      93 |     // 모바일에서는 메뉴 토글 버튼이 있어야 함
      94 |     const menuButton = page.locator('.admin-menu-button');
        at C:\Temp\taxbaik\tests\e2e\admin-responsive.spec.ts:91:52

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-71\traces\da7c59ce61d93dc7813a-ebce691dd966ad9579b3.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-2c19b-er-responsiveness-on-mobile-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  77) [Galaxy S9+] › tests\e2e\admin-responsive.spec.ts:103:7 › admin responsive design (admin account) › form inputs are accessible on mobile 

    TimeoutError: page.waitForSelector: Timeout 30000ms exceeded.
    Call log:
    [2m  - waiting for locator('input[type="text"], textarea, .mud-input-base, .mud-field') to be visible[22m


      107 |     await page.setViewportSize({ width: 480, height: 853 });
      108 |     await page.goto(`${baseUrl}/admin/faqs/create`);
    > 109 |     await page.waitForSelector('input[type="text"], textarea, .mud-input-base, .mud-field', { timeout: 30_000 });
          |                ^
      110 |
      111 |     const inputs = page.locator('input[type="text"], textarea, .mud-input-base, .mud-field');
      112 |     const inputCount = await inputs.count();
        at C:\Temp\taxbaik\tests\e2e\admin-responsive.spec.ts:109:16

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-74\traces\da7c59ce61d93dc7813a-472ee230003a92227de5.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-441c6-ts-are-accessible-on-mobile-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  78) [Galaxy S9+] › tests\e2e\admin-responsive.spec.ts:126:7 › admin responsive design (admin account) › buttons are clickable on all viewports 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.admin-page-hero')
    Expected: visible
    Timeout: 30000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 30000ms[22m
    [2m  - waiting for locator('.admin-page-hero')[22m


      137 |       await page.setViewportSize(viewport);
      138 |       await page.goto(`${baseUrl}/admin/dashboard`);
    > 139 |       await expect(page.locator('.admin-page-hero')).toBeVisible({ timeout: 30_000 });
          |                                                      ^
      140 |
      141 |       const logoutButton = page.locator('a:has-text("로그아웃"), button:has-text("로그아웃")').first();
      142 |       if (await logoutButton.count() > 0) {
        at C:\Temp\taxbaik\tests\e2e\admin-responsive.spec.ts:139:54

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-78\traces\da7c59ce61d93dc7813a-a6fd3bff243809a5758a.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\admin-responsive-admin-res-075ff--clickable-on-all-viewports-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  79) [Galaxy S9+] › tests\e2e\blog-seo.spec.ts:6:7 › blog seo › exposes title description and canonical on blog detail pages 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('a[href^="/taxbaik/blog/"]').filter({ hasText: '글 내용 보기' }).first()
    Expected: visible
    Timeout: 90000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for locator('a[href^="/taxbaik/blog/"]').filter({ hasText: '글 내용 보기' }).first()[22m


       7 |     await page.goto(`${baseUrl}/blog`);
       8 |     const firstPost = page.locator('a[href^="/taxbaik/blog/"]').filter({ hasText: '글 내용 보기' }).first();
    >  9 |     await expect(firstPost).toBeVisible();
         |                             ^
      10 |     const detailHref = await firstPost.getAttribute('href');
      11 |     expect(detailHref).toMatch(/^\/taxbaik\/blog\/[a-z0-9-]+$/);
      12 |     const detailPath = detailHref?.replace('/taxbaik', '') ?? '/blog';
        at C:\Temp\taxbaik\tests\e2e\blog-seo.spec.ts:9:29

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-72\traces\1d0d3a59ebe6e0e691d7-f489ae8d92f2251e004c.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\blog-seo-blog-seo-exposes--62f67-onical-on-blog-detail-pages-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  80) [Galaxy S9+] › tests\e2e\blog-validation.spec.ts:9:5 › Blog Management Full Flow - Real Domain Validation 

    Error: page.evaluate: Error: login failed: 400 Bad Request
        at eval (eval at evaluate (:290:30), <anonymous>:17:15)
        at async <anonymous>:316:30
        at eval (eval at evaluate (:290:30), <anonymous>:17:15)
        at async <anonymous>:316:30
        at loginThroughAdminUi (C:\Temp\taxbaik\tests\e2e\helpers\admin-auth.ts:53:30)
        at C:\Temp\taxbaik\tests\e2e\blog-validation.spec.ts:26:3

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-70\traces\ab7c3855fc28a1b2454e-00f8d78799a2a1a7c350-recording2.network'

    Error: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-70\a75a7fe4ffeac842b6a1eb85501bcb93.zip'

    [31mTest timeout of 180000ms exceeded.[39m

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\blog-validation-Blog-Manag-4f5b2-ow---Real-Domain-Validation-Galaxy-S9-\error-context.md

  81) [Galaxy S9+] › tests\e2e\contact-submit.spec.ts:27:7 › contact submit › creates an inquiry and shows it in admin list 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('.mud-main-content').getByText('문의 관리').first()
    Expected: visible
    Timeout: 20000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 20000ms[22m
    [2m  - waiting for locator('.mud-main-content').getByText('문의 관리').first()[22m


      53 |     await loginThroughAdminUi(page, baseUrl, username, password);
      54 |     await navigateInBlazor(page, `${baseUrl}/admin/inquiries`);
    > 55 |     await expect(page.locator('.mud-main-content').getByText('문의 관리').first()).toBeVisible({ timeout: 20_000 });
         |                                                                                ^
      56 |   });
      57 |
      58 |   test('submitting the public Contact.cshtml form shows the success message', async ({ page }) => {
        at C:\Temp\taxbaik\tests\e2e\contact-submit.spec.ts:55:80

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, copyfile 'C:\Temp\taxbaik\test-results\.playwright-artifacts-73\traces\78ff188543f551bce0b7-d3ea7cbe93a14842d632-recording2.network' -> 'C:\Temp\taxbaik\test-results\.playwright-artifacts-73\traces\78ff188543f551bce0b7-d3ea7cbe93a14842d632-recording2-pwnetcopy-1.network'

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-73\traces\78ff188543f551bce0b7-d3ea7cbe93a14842d632-recording1.trace'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\contact-submit-contact-sub-0fd92--and-shows-it-in-admin-list-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  82) [Galaxy S9+] › tests\e2e\contact-submit.spec.ts:58:7 › contact submit › submitting the public Contact.cshtml form shows the success message 

    [31mTest timeout of 180000ms exceeded.[39m

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-76\traces\78ff188543f551bce0b7-dd1436a872a53f2b1272.trace'

    Error: page.check: Test ended.
    Call log:
    [2m  - waiting for locator('#agree')[22m
    [2m    - locator resolved to <input id="agree" required="" name="Agree" value="true" type="checkbox" class="form-check-input"/>[22m
    [2m  - attempting click action[22m
    [2m    - waiting for element to be visible, enabled and stable[22m
    [2m    - element is visible, enabled and stable[22m
    [2m    - scrolling into view if needed[22m
    [2m    - done scrolling[22m
    [2m    - <form method="post" id="contactForm" data-gtm-form-interact-id="0">…</form> intercepts pointer events[22m
    [2m  - retrying click action[22m
    [2m    - waiting for element to be visible, enabled and stable[22m
    [2m    - element is visible, enabled and stable[22m
    [2m    - scrolling into view if needed[22m
    [2m    - done scrolling[22m
    [2m    - <a target="_blank" class="btn-kakao-mobile" rel="noopener noreferrer" href="https://pf.kakao.com/_xoxchTX">↵            💬 카카오 상담하기↵        </a> from <div class="mobile-cta-bar d-lg-none">…</div> subtree intercepts pointer events[22m
    [2m  - retrying click action[22m
    [2m    - waiting 20ms[22m
    [2m    - waiting for element to be visible, enabled and stable[22m
    [2m    - element is visible, enabled and stable[22m
    [2m    - scrolling into view if needed[22m
    [2m    - done scrolling[22m
    [2m    - <form method="post" id="contactForm" data-gtm-form-interact-id="0">…</form> intercepts pointer events[22m
    [2m  2 × retrying click action[22m
    [2m      - waiting 100ms[22m
    [2m      - waiting for element to be visible, enabled and stable[22m
    [2m      - element is visible, enabled and stable[22m
    [2m      - scrolling into view if needed[22m
    [2m      - done scrolling[22m
    [2m      - <div class="container py-5">…</div> intercepts pointer events[22m
    [2m  83 × retrying click action[22m
    [2m       - waiting 500ms[22m
    [2m       - waiting for element to be visible, enabled and stable[22m
    [2m       - element is visible, enabled and stable[22m
    [2m       - scrolling into view if needed[22m
    [2m       - done scrolling[22m
    [2m       - <a target="_blank" class="btn-kakao-mobile" rel="noopener noreferrer" href="https://pf.kakao.com/_xoxchTX">↵            💬 카카오 상담하기↵        </a> from <div class="mobile-cta-bar d-lg-none">…</div> subtree intercepts pointer events[22m
    [2m     - retrying click action[22m
    [2m       - waiting 500ms[22m
    [2m       - waiting for element to be visible, enabled and stable[22m
    [2m       - element is visible, enabled and stable[22m
    [2m       - scrolling into view if needed[22m
    [2m       - done scrolling[22m
    [2m       - <form method="post" id="contactForm" data-gtm-form-interact-id="0">…</form> intercepts pointer events[22m
    [2m     - retrying click action[22m
    [2m       - waiting 500ms[22m
    [2m       - waiting for element to be visible, enabled and stable[22m
    [2m       - element is visible, enabled and stable[22m
    [2m       - scrolling into view if needed[22m
    [2m       - done scrolling[22m
    [2m       - <div class="container py-5">…</div> intercepts pointer events[22m
    [2m     - retrying click action[22m
    [2m       - waiting 500ms[22m
    [2m       - waiting for element to be visible, enabled and stable[22m
    [2m       - element is visible, enabled and stable[22m
    [2m       - scrolling into view if needed[22m
    [2m       - done scrolling[22m
    [2m       - <div class="container py-5">…</div> intercepts pointer events[22m
    [2m  - retrying click action[22m
    [2m    - waiting 500ms[22m
    [2m    - waiting for element to be visible, enabled and stable[22m
    [2m    - element is visible, enabled and stable[22m
    [2m    - scrolling into view if needed[22m
    [2m    - done scrolling[22m
    [2m    - <a target="_blank" class="btn-kakao-mobile" rel="noopener noreferrer" href="https://pf.kakao.com/_xoxchTX">↵            💬 카카오 상담하기↵        </a> from <div class="mobile-cta-bar d-lg-none">…</div> subtree intercepts pointer events[22m
    [2m  - retrying click action[22m
    [2m    - waiting 500ms[22m
    [2m    - waiting for element to be visible, enabled and stable[22m
    [2m    - element is visible, enabled and stable[22m
    [2m    - scrolling into view if needed[22m
    [2m    - done scrolling[22m
    [2m    - <form method="post" id="contactForm" data-gtm-form-interact-id="0">…</form> intercepts pointer events[22m
    [2m  - retrying click action[22m
    [2m    - waiting 500ms[22m


      70 |     await page.fill('#email', `contact-e2e-${stamp}@example.com`);
      71 |     await page.fill('#message', 'Playwright로 Contact.cshtml 폼을 직접 제출한 테스트입니다.');
    > 72 |     await page.check('#agree');
         |                ^
      73 |     await page.click('button[type="submit"]');
      74 |
      75 |     await expect(page.locator('#contact-success')).toBeVisible({ timeout: 15_000 });
        at C:\Temp\taxbaik\tests\e2e\contact-submit.spec.ts:72:16

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\contact-submit-contact-sub-024b3-m-shows-the-success-message-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\contact-submit-contact-sub-024b3-m-shows-the-success-message-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\contact-submit-contact-sub-024b3-m-shows-the-success-message-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\contact-submit-contact-sub-024b3-m-shows-the-success-message-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  83) [Galaxy S9+] › tests\e2e\dashboard-check.spec.ts:4:5 › check dashboard metrics ───────────────

    TimeoutError: page.waitForSelector: Timeout 5000ms exceeded.
    Call log:
    [2m  - waiting for locator('.admin-page-hero') to be visible[22m


      11 |
      12 |   // Wait for page load
    > 13 |   await page.waitForSelector('.admin-page-hero', { timeout: 5000 });
         |              ^
      14 |   await page.waitForTimeout(2000);
      15 |
      16 |   // Check for metric cards
        at C:\Temp\taxbaik\tests\e2e\dashboard-check.spec.ts:13:14

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\dashboard-check-check-dashboard-metrics-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
    test-results\dashboard-check-check-dashboard-metrics-Galaxy-S9-\video.webm
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\dashboard-check-check-dashboard-metrics-Galaxy-S9-\error-context.md

    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\dashboard-check-check-dashboard-metrics-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\dashboard-check-check-dashboard-metrics-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  84) [Galaxy S9+] › tests\e2e\full-admin-pages.spec.ts:5:5 › production: verify all admin pages load correctly 

    Error: page.evaluate: Error: login failed: 400 Bad Request
        at eval (eval at evaluate (:290:30), <anonymous>:17:15)
        at async <anonymous>:316:30
        at eval (eval at evaluate (:290:30), <anonymous>:17:15)
        at async <anonymous>:316:30
        at loginThroughAdminUi (C:\Temp\taxbaik\tests\e2e\helpers\admin-auth.ts:53:30)
        at C:\Temp\taxbaik\tests\e2e\full-admin-pages.spec.ts:10:3

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
    test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-Galaxy-S9-\video.webm
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-Galaxy-S9-\error-context.md

    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\full-admin-pages-productio-d8737--admin-pages-load-correctly-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  85) [Galaxy S9+] › tests\e2e\full-user-flow.spec.ts:6:7 › 프로덕션 사용자 흐름 테스트 › 홈페이지 → 로그인 → 대시보드 → 블로그 CRUD 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: locator('text=블로그 관리')
    Expected: visible
    Timeout: 30000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 30000ms[22m
    [2m  - waiting for locator('text=블로그 관리')[22m


      39 |     // 네비게이션 메뉴 확인
      40 |     const blogLink = page.locator('text=블로그 관리');
    > 41 |     await expect(blogLink).toBeVisible({ timeout: 30000 });
         |                            ^
      42 |     console.log('✓ 블로그 관리 메뉴 표시');
      43 |
      44 |     // 블로그 페이지로 이동
        at C:\Temp\taxbaik\tests\e2e\full-user-flow.spec.ts:41:28

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-81\traces\c6681a4a350aa86369bc-e1542725c672045325c2.network'

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\full-user-flow-프로덕션-사용자-흐름-테스트-홈페이지-→-로그인-→-대시보드-→-블로그-CRUD-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\full-user-flow-프로덕션-사용자-흐름-테스트-홈페이지-→-로그인-→-대시보드-→-블로그-CRUD-Galaxy-S9-\error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\full-user-flow-프로덕션-사용자-흐름-테스트-홈페이지-→-로그인-→-대시보드-→-블로그-CRUD-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\full-user-flow-프로덕션-사용자-흐름-테스트-홈페이지-→-로그인-→-대시보드-→-블로그-CRUD-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  86) [Galaxy S9+] › tests\e2e\inquiry-detail.spec.ts:9:7 › inquiry detail › shows the created inquiry and admin action links 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: getByText('Detail-1783486021956', { exact: true }).first()
    Expected: visible
    Timeout: 90000ms
    Error: element(s) not found

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for getByText('Detail-1783486021956', { exact: true }).first()[22m


      37 |
      38 |     await expect(page).toHaveURL(/\/taxbaik\/admin\/inquiries\/\d+$/);
    > 39 |     await expect(page.getByText(name, { exact: true }).first()).toBeVisible();
         |                                                                 ^
      40 |     await expect(page.getByText(phone, { exact: true }).first()).toBeVisible();
      41 |     await expect(page.getByText(message, { exact: true }).first()).toBeVisible();
      42 |     await expect(page.getByRole('button', { name: '신규' })).toBeVisible();
        at C:\Temp\taxbaik\tests\e2e\inquiry-detail.spec.ts:39:65

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-82\traces\0b7ed30a9e279ee14eeb-f931fbc30ff864267ded-recording1.network'

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-82\traces\0b7ed30a9e279ee14eeb-f931fbc30ff864267ded.trace'

    Error: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-82\8fe3eafde3dfdc300336d87f9a25833d.zip'

    [31mTest timeout of 180000ms exceeded.[39m

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\inquiry-detail-inquiry-det-43d69-uiry-and-admin-action-links-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\inquiry-detail-inquiry-det-43d69-uiry-and-admin-action-links-Galaxy-S9-\error-context.md

  87) [Galaxy S9+] › tests\e2e\login-test.spec.ts:8:5 › Admin Login Page - prerendered HTML contains the form before JS runs 

    Error: [2mexpect([22m[31mreceived[39m[2m).[22mtoContain[2m([22m[32mexpected[39m[2m) // indexOf[22m

    Expected substring: [32m"name=\"username\""[39m
    Received string:    [31m"<!DOCTYPE html>·[39m
    [31m<html lang=\"ko\">·[39m
    [31m<head>·[39m
    [31m    <meta charset=\"utf-8\" />·[39m
    [31m    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />·[39m
    [31m    <title>관리자 로그인</title>·[39m
    [31m    <meta name=\"description\" content=\"관리자 로그인 페이지입니다.\" />·[39m
    [31m    <meta name=\"keywords\" content=\"백원숙 세무회계, 세무사, 사업자 기장, 양도소득세, 증여세, 상속세, 종합소득세, 절세 상담, 세무 대리\" />·······[39m
    [31m    <!-- Open Graph / Facebook -->·[39m
    [31m    <meta property=\"og:type\" content=\"website\" />·[39m
    [31m    <meta property=\"og:title\" content=\"관리자 로그인\" />·[39m
    [31m    <meta property=\"og:description\" content=\"관리자 로그인 페이지입니다.\" />·[39m
    [31m    <meta property=\"og:image\" content=\"https://www.taxbaik.com/taxbaik/images/og-image.jpg\" />·[39m
    [31m    <meta property=\"og:url\" content=\"https://www.taxbaik.com/taxbaik/\" />·······[39m
    [31m    <!-- Twitter -->·[39m
    [31m    <meta property=\"twitter:card\" content=\"summary_large_image\" />·[39m
    [31m    <meta property=\"twitter:title\" content=\"관리자 로그인\" />·[39m
    [31m    <meta property=\"twitter:description\" content=\"관리자 로그인 페이지입니다.\" />·[39m
    [31m    <meta property=\"twitter:image\" content=\"https://www.taxbaik.com/taxbaik/images/og-image.jpg\" />···[39m
    [31m    <!-- 검색엔진 등록용 소유권 인증 메타 태그 (발급받으신 토큰이 있으면 아래 content에 넣어 주시면 됩니다) -->·[39m
    [31m    <!-- <meta name=\"naver-site-verification\" content=\"네이버_서치어드바이저_토큰_입력\" /> -->·[39m
    [31m    <!-- <meta name=\"google-site-verification\" content=\"구글_서치콘솔_토큰_입력\" /> -->···[39m
    [31m    <meta name=\"robots\" content=\"index, follow\" />·[39m
    [31m    <meta name=\"theme-color\" content=\"#C89D6E\" />·[39m
    [31m    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/taxbaik/favicon.svg\" />·[39m
    [31m    <link rel=\"alternate icon\" href=\"/taxbaik/favicon.ico\" />···[39m
    [31m    <!-- RSS Feed -->·[39m
    [31m    <link rel=\"alternate\" type=\"application/rss+xml\" title=\"백원숙 세무회계 블로그\" href=\"/taxbaik/rss.xml\" />·[39m
    [31m    <link rel=\"alternate\" type=\"application/rss+xml\" title=\"TaxBaik Blog Feed\" href=\"/taxbaik/feed.xml\" />·[39m
    [31m    <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\" />·[39m
    [31m    <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin />·[39m
    [31m    <link rel=\"dns-prefetch\" href=\"https://cdn.jsdelivr.net\" />·[39m
    [31m    <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Noto+Sans+KR:wght@400;500;700&family=Outfit:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\" />·[39m
    [31m    <link rel=\"canonical\" href=\"http://localhost:5001/taxbaik/admin/login\" />·[39m
    [31m    <link href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css\" rel=\"stylesheet\" />·[39m
    [31m    <link rel=\"stylesheet\" href=\"/taxbaik/css/site.css\" asp-append-version=\"true\" />···[39m
    [31m    <!-- 구조화된 데이터 (JSON-LD Schema Markup) -->·[39m
    [31m    <script type=\"application/ld+json\">·[39m
    [31m    {·[39m
    [31m      \"@context\": \"https://schema.org\",·[39m
    [31m      \"@type\": \"ProfessionalService\",·[39m
    [31m      \"name\": \"백원숙 세무회계\",·[39m
    [31m      \"description\": \"사업자 기장, 부동산 양도세·증여세, 종합소득세 전문 상담 세무사\",·[39m
    [31m      \"url\": \"https://www.taxbaik.com/taxbaik/\",·[39m
    [31m      \"telephone\": \"010-4122-8268\",·[39m
    [31m      \"email\": \"taxbaik5668@gmail.com\",·[39m
    [31m      \"address\": {·[39m
    [31m        \"@type\": \"PostalAddress\",·[39m
    [31m        \"addressCountry\": \"KR\"·[39m
    [31m      },·[39m
    [31m      \"sameAs\": [·[39m
    [31m        \"https://www.instagram.com/taxtory5668/\",·[39m
    [31m        \"https://pf.kakao.com/_xoxchTX\"·[39m
    [31m      ]·[39m
    [31m    }·[39m
    [31m    </script>···[39m
    [31m    <!-- Google tag (gtag.js) -->·[39m
    [31m    <script async src=\"https://www.googletagmanager.com/gtag/js?id=G-25KRKY45D7\"></script>·[39m
    [31m    <script>·[39m
    [31m      window.dataLayer = window.dataLayer || [];·[39m
    [31m      function gtag(){dataLayer.push(arguments);}·[39m
    [31m      gtag('js', new Date());···[39m
    [31m      gtag('config', 'G-25KRKY45D7');·[39m
    [31m    </script>·[39m
    [31m</head>·[39m
    [31m<body class=\"with-mobile-cta\" data-kakao-url=\"https://pf.kakao.com/_xoxchTX\">·[39m
    [31m    <partial name=\"_Header\" />·[39m
    [31m    <main role=\"main\" class=\"pb-5\">··········[39m
    [31m<section class=\"container py-5\" style=\"max-width: 560px;\">[39m
    [31m    <div class=\"card shadow-sm border-0\">[39m
    [31m        <div class=\"card-body p-4 p-md-5\">[39m
    [31m            <div class=\"mb-4\">[39m
    [31m                <p class=\"text-uppercase text-muted small mb-1\">TaxBaik Admin</p>[39m
    [31m                <h1 class=\"h3 fw-bold mb-2\">관리자 로그인</h1>[39m
    [31m                <p class=\"text-muted mb-0\">로그인 후 대시보드와 관리자 기능을 이용할 수 있습니다.</p>[39m
    [31m            </div>··[39m
    [31m            <form id=\"admin-login-form\" method=\"post\" class=\"vstack gap-3\">[39m
    [31m                <input name=\"__RequestVerificationToken\" type=\"hidden\" value=\"CfDJ8MSeutqIyfZKsHr5RAKz7bOUWYZleo1lAehz5rRZieA4zDJumAtga0em9p1TYXpEnwvVp2N5hzjobv1HuO28_gMmoDbtuHplGIZVBrum3L327elA-9yiFtVkZ69U7QDmhLmWIoS6GaoQ8_NFjpVx-lk\" />[39m
    [31m                <input type=\"hidden\" id=\"ReturnUrl\" name=\"ReturnUrl\" />·[39m
    [31m                <div>[39m
    [31m                    <label class=\"form-label\" for=\"Username\">사용자명</label>[39m
    [31m                    <input class=\"form-control\" id=\"Username\" name=\"Username\" value=\"\" autocomplete=\"username\" />[39m
    [31m                    <span class=\"text-danger small\"></span>[39m
    [31m                </div>·[39m
    [31m                <div>[39m
    [31m                    <label class=\"form-label\" for=\"Password\">비밀번호</label>[39m
    [31m                    <input class=\"form-control\" id=\"Password\" name=\"Password\" type=\"password\" autocomplete=\"current-password\" />[39m
    [31m                    <span class=\"text-danger small\"></span>[39m
    [31m                </div>·[39m
    [31m                <div class=\"form-check\">[39m
    [31m                    <input class=\"form-check-input\" id=\"RememberMe\" name=\"RememberMe\" type=\"checkbox\" value=\"true\" checked=\"checked\" />[39m
    [31m                    <label class=\"form-check-label\" for=\"RememberMe\">로그인 상태 유지</label>[39m
    [31m                </div>·[39m
    [31m                <button class=\"btn btn-dark w-100\" id=\"admin-login-submit\" type=\"submit\">[39m
    [31m                    <span>로그인</span>[39m
    [31m                </button>[39m
    [31m            </form>·[39m
    [31m            <p class=\"text-muted small mt-4 mb-0\">[39m
    [31m                이 페이지는 서버 렌더링 기반입니다. 로그인 성공 후 관리자 웹앱으로 이동합니다.[39m
    [31m            </p>[39m
    [31m        </div>[39m
    [31m    </div>[39m
    [31m</section>···[39m
    [31m    </main>·[39m
    [31m    <footer class=\"bg-light border-top mt-5 py-5\">·[39m
    [31m        <div class=\"container\">·[39m
    [31m            <div class=\"row g-5\">·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">백원숙 세무회계</h6>·[39m
    [31m                    <p class=\"small text-muted\">·[39m
    [31m                        사업자 기장, 부동산 양도세·증여세,<br />·[39m
    [31m                        종합소득세 전문 상담·[39m
    [31m                    </p>·[39m
    [31m                </div>·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">메뉴</h6>·[39m
    [31m                    <ul class=\"list-unstyled small\">·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/\" class=\"text-decoration-none text-muted\">홈</a></li>·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/about\" class=\"text-decoration-none text-muted\">세무사 소개</a></li>·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/services\" class=\"text-decoration-none text-muted\">전문 서비스</a></li>·[39m
    [31m                        <li class=\"mb-2\"><a href=\"/taxbaik/blog\" class=\"text-decoration-none text-muted\">세무 정보</a></li>·[39m
    [31m                        <li><a href=\"/taxbaik/contact\" class=\"text-decoration-none text-muted\">상담 신청</a></li>·[39m
    [31m                    </ul>·[39m
    [31m                </div>·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">연락처</h6>·[39m
    [31m                    <p class=\"small\">·[39m
    [31m                        📞 <a href=\"tel:010-4122-8268\" class=\"text-decoration-none text-muted\">010-4122-8268</a><br />·[39m
    [31m                        📧 <a href=\"mailto:taxbaik5668@gmail.com\" class=\"text-decoration-none text-muted\">taxbaik5668@gmail.com</a>·[39m
    [31m                    </p>·[39m
    [31m                </div>·[39m
    [31m                <div class=\"col-md-3\">·[39m
    [31m                    <h6 class=\"fw-bold mb-3\">채널</h6>·[39m
    [31m                    <p class=\"small\">·[39m
    [31m                        <a href=\"https://pf.kakao.com/_xoxchTX\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"btn btn-sm btn-warning me-2\">카카오톡</a>·[39m
    [31m                        <a href=\"https://www.instagram.com/taxtory5668/\" target=\"_blank\" class=\"btn btn-sm btn-outline-secondary\">Instagram</a>·[39m
    [31m                    </p>·[39m
    [31m                </div>·[39m
    [31m            </div>·[39m
    [31m            <hr class=\"my-4\" />·[39m
    [31m            <div class=\"text-center small text-muted\">·[39m
    [31m                <p>© 2026 백원숙 세무회계. All rights reserved.</p>·[39m
    [31m                <div class=\"mb-2\">·[39m
    [31m                    <a href=\"/taxbaik/privacy\" class=\"text-decoration-none text-muted me-2\">개인정보처리방침</a>·[39m
    [31m                    <span class=\"text-muted\">|</span>·[39m
    [31m                    <a href=\"/taxbaik/terms\" class=\"text-decoration-none text-muted ms-2 me-2\">이용약관</a>·[39m
    [31m                    <span class=\"text-muted\">|</span>·[39m
    [31m                </div>·[39m
    [31m                    <div class=\"mt-2 text-muted\" style=\"font-size: 0.75rem; opacity: 0.6;\">·[39m
    [31m                        vunknown · unknown·[39m
    [31m                    </div>·[39m
    [31m            </div>·[39m
    [31m        </div>·[39m
    [31m    </footer>···[39m
    [31m    <!-- Mobile Fixed CTA -->·[39m
    [31m    <div class=\"mobile-cta-bar d-lg-none\">·[39m
    [31m        <a href=\"https://pf.kakao.com/_xoxchTX\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"btn-kakao-mobile\">·[39m
    [31m            💬 카카오 상담하기·[39m
    [31m        </a>·[39m
    [31m    </div>···[39m
    [31m    <script src=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js\" defer></script>·[39m
    [31m    <script src=\"/taxbaik/js/site.js\" asp-append-version=\"true\" defer></script>·······[39m
    [31m</body>·[39m
    [31m</html>·[39m
    [31m"[39m

      16 |
      17 |   const html = await response.text();
    > 18 |   expect(html).toContain('name="username"');
         |                ^
      19 |   expect(html).toContain('name="password"');
      20 |   expect(html).toContain('admin-login-form');
      21 | });
        at C:\Temp\taxbaik\tests\e2e\login-test.spec.ts:18:16

    Error: apiRequestContext._wrapApiCall: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-83\traces\bdde59c310911dcc8229-8440797333d01dae68e5.network'

    Error: ENOENT: no such file or directory, open 'C:\Temp\taxbaik\test-results\.playwright-artifacts-83\5ba7a673b0f25a86fbef667ee4be6df9.zip'

    [31mTest timeout of 180000ms exceeded.[39m

  88) [Galaxy S9+] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: getByRole('link', { name: /상담 신청|무료 상담 신청/ })
    Expected: visible
    Error: strict mode violation: getByRole('link', { name: /상담 신청|무료 상담 신청/ }) resolved to 2 elements:
        1) <a href="/taxbaik/contact" class="btn btn-primary btn-lg">상담 신청하기</a> aka getByRole('link', { name: '상담 신청하기' })
        2) <a href="/taxbaik/contact" class="text-decoration-none text-muted">상담 신청</a> aka getByRole('link', { name: '상담 신청', exact: true })

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for getByRole('link', { name: /상담 신청|무료 상담 신청/ })[22m


      10 |     await expect(page).not.toHaveTitle(/관리자/);
      11 |     await expect(page.getByRole('heading', { name: /세금과 자산|백원숙 세무회계/ })).toBeVisible();
    > 12 |     // 상담 신청 버튼: 첫 번째 "상담 신청하기" 버튼만 선택 (strict mode 위반 방지)
         |                                                                     ^
      13 |     await expect(page.getByRole('link', { name: '상담 신청하기' })).toBeVisible();
      14 |     await expect(page.locator('meta[name="description"]')).toHaveAttribute('content', /사업자 기장|부동산|종합소득세/);
      15 |     await expect(page.getByRole('heading', { name: /상담 과정/ })).toBeVisible();
        at C:\Temp\taxbaik\tests\e2e\public-smoke.spec.ts:12:70

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
    test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Galaxy-S9-\video.webm
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Galaxy-S9-\error-context.md

    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  89) [Galaxy S9+] › tests\e2e\route-isolation.spec.ts:6:7 › route isolation › public home does not boot the admin app 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: getByRole('link', { name: /카카오 상담하기|카카오채널 문의/ })
    Expected: visible
    Error: strict mode violation: getByRole('link', { name: /카카오 상담하기|카카오채널 문의/ }) resolved to 2 elements:
        1) <a target="_blank" rel="noopener noreferrer" onclick="openKakao(event)" href="https://pf.kakao.com/_xoxchTX" class="btn btn-outline-primary btn-lg">↵                            💬 카카오채널 문의↵         …</a> aka getByRole('link', { name: '💬 카카오채널 문의' })
        2) <a target="_blank" class="btn-kakao-mobile" rel="noopener noreferrer" href="https://pf.kakao.com/_xoxchTX">↵            💬 카카오 상담하기↵        </a> aka getByRole('link', { name: '💬 카카오 상담하기' })

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for getByRole('link', { name: /카카오 상담하기|카카오채널 문의/ })[22m


       9 |     await expect(page).toHaveTitle(/백원숙 세무회계/);
      10 |     await expect(page.getByRole('heading', { name: /상담 과정/ })).toBeVisible();
    > 11 |     await expect(page.getByRole('link', { name: /카카오 상담하기|카카오채널 문의/ })).toBeVisible();
         |                                                                         ^
      12 |   });
      13 |
      14 |   test('admin login boots the admin app under the admin base path', async ({ page }) => {
        at C:\Temp\taxbaik\tests\e2e\route-isolation.spec.ts:11:73

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\route-isolation-route-isol-340d6-does-not-boot-the-admin-app-Galaxy-S9-\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
    test-results\route-isolation-route-isol-340d6-does-not-boot-the-admin-app-Galaxy-S9-\video.webm
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\route-isolation-route-isol-340d6-does-not-boot-the-admin-app-Galaxy-S9-\error-context.md

    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\route-isolation-route-isol-340d6-does-not-boot-the-admin-app-Galaxy-S9-\trace.zip
    Usage:

        npx playwright show-trace test-results\route-isolation-route-isol-340d6-does-not-boot-the-admin-app-Galaxy-S9-\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  90) [Public Smoke] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics 

    Error: [2mexpect([22m[31mlocator[39m[2m).[22mtoBeVisible[2m([22m[2m)[22m failed

    Locator: getByRole('link', { name: /상담 신청|무료 상담 신청/ })
    Expected: visible
    Error: strict mode violation: getByRole('link', { name: /상담 신청|무료 상담 신청/ }) resolved to 2 elements:
        1) <a href="/taxbaik/contact" class="btn btn-primary btn-lg">상담 신청하기</a> aka getByRole('link', { name: '상담 신청하기' })
        2) <a href="/taxbaik/contact" class="text-decoration-none text-muted">상담 신청</a> aka getByRole('link', { name: '상담 신청', exact: true })

    Call log:
    [2m  - Expect "toBeVisible" with timeout 90000ms[22m
    [2m  - waiting for getByRole('link', { name: /상담 신청|무료 상담 신청/ })[22m


      10 |     await expect(page).not.toHaveTitle(/관리자/);
      11 |     await expect(page.getByRole('heading', { name: /세금과 자산|백원숙 세무회계/ })).toBeVisible();
    > 12 |     // 상담 신청 버튼: 첫 번째 "상담 신청하기" 버튼만 선택 (strict mode 위반 방지)
         |                                                                     ^
      13 |     await expect(page.getByRole('link', { name: '상담 신청하기' })).toBeVisible();
      14 |     await expect(page.locator('meta[name="description"]')).toHaveAttribute('content', /사업자 기장|부동산|종합소득세/);
      15 |     await expect(page.getByRole('heading', { name: /상담 과정/ })).toBeVisible();
        at C:\Temp\taxbaik\tests\e2e\public-smoke.spec.ts:12:70

    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Public-Smoke\test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
    test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Public-Smoke\video.webm
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Public-Smoke\error-context.md

    attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Public-Smoke\trace.zip
    Usage:

        npx playwright show-trace test-results\public-smoke-public-smoke--d5132-ublic-pages-with-SEO-basics-Public-Smoke\trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  90 failed
    [Desktop Chrome] › tests\e2e\admin-crm-pages.spec.ts:18:7 › admin CRM pages › TaxProfiles page loads with grid and add button 
    [Desktop Chrome] › tests\e2e\admin-login.spec.ts:8:7 › admin authentication › logs in through the real browser UI and reaches dashboard 
    [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:10:7 › Admin Pages E2E (Manual) › Login page loads 
    [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:16:7 › Admin Pages E2E (Manual) › Dashboard page loads 
    [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:31:7 › Admin Pages E2E (Manual) › Blog page loads 
    [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:46:7 › Admin Pages E2E (Manual) › Inquiry page loads 
    [Desktop Chrome] › tests\e2e\admin-pages-manual.spec.ts:61:7 › Admin Pages E2E (Manual) › CRM pages load 
    [Desktop Chrome] › tests\e2e\admin-responsive.spec.ts:21:7 › admin responsive design (admin account) › dashboard loads correctly on all viewports 
    [Desktop Chrome] › tests\e2e\admin-responsive.spec.ts:85:7 › admin responsive design (admin account) › drawer responsiveness on mobile 
    [Desktop Chrome] › tests\e2e\admin-responsive.spec.ts:103:7 › admin responsive design (admin account) › form inputs are accessible on mobile 
    [Desktop Chrome] › tests\e2e\admin-responsive.spec.ts:126:7 › admin responsive design (admin account) › buttons are clickable on all viewports 
    [Desktop Chrome] › tests\e2e\blog-seo.spec.ts:6:7 › blog seo › exposes title description and canonical on blog detail pages 
    [Desktop Chrome] › tests\e2e\blog-validation.spec.ts:9:5 › Blog Management Full Flow - Real Domain Validation 
    [Desktop Chrome] › tests\e2e\contact-submit.spec.ts:27:7 › contact submit › creates an inquiry and shows it in admin list 
    [Desktop Chrome] › tests\e2e\dashboard-check.spec.ts:4:5 › check dashboard metrics ─────────────
    [Desktop Chrome] › tests\e2e\full-admin-pages.spec.ts:5:5 › production: verify all admin pages load correctly 
    [Desktop Chrome] › tests\e2e\full-user-flow.spec.ts:6:7 › 프로덕션 사용자 흐름 테스트 › 홈페이지 → 로그인 → 대시보드 → 블로그 CRUD 
    [Desktop Chrome] › tests\e2e\inquiry-detail.spec.ts:9:7 › inquiry detail › shows the created inquiry and admin action links 
    [Desktop Chrome] › tests\e2e\login-test.spec.ts:8:5 › Admin Login Page - prerendered HTML contains the form before JS runs 
    [Desktop Chrome] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics 
    [iPhone 12] › tests\e2e\admin-crm-pages.spec.ts:18:7 › admin CRM pages › TaxProfiles page loads with grid and add button 
    [iPhone 12] › tests\e2e\admin-login.spec.ts:8:7 › admin authentication › logs in through the real browser UI and reaches dashboard 
    [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:10:7 › Admin Pages E2E (Manual) › Login page loads 
    [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:16:7 › Admin Pages E2E (Manual) › Dashboard page loads 
    [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:31:7 › Admin Pages E2E (Manual) › Blog page loads 
    [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:46:7 › Admin Pages E2E (Manual) › Inquiry page loads 
    [iPhone 12] › tests\e2e\admin-pages-manual.spec.ts:61:7 › Admin Pages E2E (Manual) › CRM pages load 
    [iPhone 12] › tests\e2e\admin-password-change.spec.ts:10:7 › admin password change › changes password through the real admin UI 
    [iPhone 12] › tests\e2e\admin-responsive.spec.ts:21:7 › admin responsive design (admin account) › dashboard loads correctly on all viewports 
    [iPhone 12] › tests\e2e\admin-responsive.spec.ts:85:7 › admin responsive design (admin account) › drawer responsiveness on mobile 
    [iPhone 12] › tests\e2e\admin-responsive.spec.ts:103:7 › admin responsive design (admin account) › form inputs are accessible on mobile 
    [iPhone 12] › tests\e2e\admin-responsive.spec.ts:126:7 › admin responsive design (admin account) › buttons are clickable on all viewports 
    [iPhone 12] › tests\e2e\admin-smoke.spec.ts:10:7 › admin smoke › @smoke logs in and lands on dashboard without circuit errors 
    [iPhone 12] › tests\e2e\blog-crud.spec.ts:9:7 › blog CRUD operations › complete blog creation, read, update, delete flow 
    [iPhone 12] › tests\e2e\blog-seo.spec.ts:6:7 › blog seo › exposes title description and canonical on blog detail pages 
    [iPhone 12] › tests\e2e\blog-validation.spec.ts:9:5 › Blog Management Full Flow - Real Domain Validation 
    [iPhone 12] › tests\e2e\contact-submit.spec.ts:27:7 › contact submit › creates an inquiry and shows it in admin list 
    [iPhone 12] › tests\e2e\contact-submit.spec.ts:58:7 › contact submit › submitting the public Contact.cshtml form shows the success message 
    [iPhone 12] › tests\e2e\dashboard-check.spec.ts:4:5 › check dashboard metrics ──────────────────
    [iPhone 12] › tests\e2e\full-admin-pages.spec.ts:5:5 › production: verify all admin pages load correctly 
    [iPhone 12] › tests\e2e\full-user-flow.spec.ts:6:7 › 프로덕션 사용자 흐름 테스트 › 홈페이지 → 로그인 → 대시보드 → 블로그 CRUD 
    [iPhone 12] › tests\e2e\inquiry-detail.spec.ts:9:7 › inquiry detail › shows the created inquiry and admin action links 
    [iPhone 12] › tests\e2e\login-test.spec.ts:8:5 › Admin Login Page - prerendered HTML contains the form before JS runs 
    [iPhone 12] › tests\e2e\login-test.spec.ts:23:5 › Admin Login Page - Full Flow Test ────────────
    [iPhone 12] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics 
    [iPhone 12] › tests\e2e\route-isolation.spec.ts:6:7 › route isolation › public home does not boot the admin app 
    [iPhone 12] › tests\e2e\route-isolation.spec.ts:14:7 › route isolation › admin login boots the admin app under the admin base path 
    [iPad Pro] › tests\e2e\admin-crm-pages.spec.ts:18:7 › admin CRM pages › TaxProfiles page loads with grid and add button 
    [iPad Pro] › tests\e2e\admin-login.spec.ts:8:7 › admin authentication › logs in through the real browser UI and reaches dashboard 
    [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:10:7 › Admin Pages E2E (Manual) › Login page loads 
    [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:16:7 › Admin Pages E2E (Manual) › Dashboard page loads 
    [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:31:7 › Admin Pages E2E (Manual) › Blog page loads 
    [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:46:7 › Admin Pages E2E (Manual) › Inquiry page loads 
    [iPad Pro] › tests\e2e\admin-pages-manual.spec.ts:61:7 › Admin Pages E2E (Manual) › CRM pages load 
    [iPad Pro] › tests\e2e\admin-responsive.spec.ts:21:7 › admin responsive design (admin account) › dashboard loads correctly on all viewports 
    [iPad Pro] › tests\e2e\admin-responsive.spec.ts:85:7 › admin responsive design (admin account) › drawer responsiveness on mobile 
    [iPad Pro] › tests\e2e\admin-responsive.spec.ts:103:7 › admin responsive design (admin account) › form inputs are accessible on mobile 
    [iPad Pro] › tests\e2e\admin-responsive.spec.ts:126:7 › admin responsive design (admin account) › buttons are clickable on all viewports 
    [iPad Pro] › tests\e2e\blog-seo.spec.ts:6:7 › blog seo › exposes title description and canonical on blog detail pages 
    [iPad Pro] › tests\e2e\blog-validation.spec.ts:9:5 › Blog Management Full Flow - Real Domain Validation 
    [iPad Pro] › tests\e2e\contact-submit.spec.ts:27:7 › contact submit › creates an inquiry and shows it in admin list 
    [iPad Pro] › tests\e2e\dashboard-check.spec.ts:4:5 › check dashboard metrics ───────────────────
    [iPad Pro] › tests\e2e\full-admin-pages.spec.ts:5:5 › production: verify all admin pages load correctly 
    [iPad Pro] › tests\e2e\full-user-flow.spec.ts:6:7 › 프로덕션 사용자 흐름 테스트 › 홈페이지 → 로그인 → 대시보드 → 블로그 CRUD 
    [iPad Pro] › tests\e2e\inquiry-detail.spec.ts:9:7 › inquiry detail › shows the created inquiry and admin action links 
    [iPad Pro] › tests\e2e\login-test.spec.ts:8:5 › Admin Login Page - prerendered HTML contains the form before JS runs 
    [iPad Pro] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics 
    [Galaxy S9+] › tests\e2e\admin-crm-pages.spec.ts:18:7 › admin CRM pages › TaxProfiles page loads with grid and add button 
    [Galaxy S9+] › tests\e2e\admin-login.spec.ts:8:7 › admin authentication › logs in through the real browser UI and reaches dashboard 
    [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:10:7 › Admin Pages E2E (Manual) › Login page loads 
    [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:16:7 › Admin Pages E2E (Manual) › Dashboard page loads 
    [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:31:7 › Admin Pages E2E (Manual) › Blog page loads 
    [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:46:7 › Admin Pages E2E (Manual) › Inquiry page loads 
    [Galaxy S9+] › tests\e2e\admin-pages-manual.spec.ts:61:7 › Admin Pages E2E (Manual) › CRM pages load 
    [Galaxy S9+] › tests\e2e\admin-responsive.spec.ts:21:7 › admin responsive design (admin account) › dashboard loads correctly on all viewports 
    [Galaxy S9+] › tests\e2e\admin-responsive.spec.ts:85:7 › admin responsive design (admin account) › drawer responsiveness on mobile 
    [Galaxy S9+] › tests\e2e\admin-responsive.spec.ts:103:7 › admin responsive design (admin account) › form inputs are accessible on mobile 
    [Galaxy S9+] › tests\e2e\admin-responsive.spec.ts:126:7 › admin responsive design (admin account) › buttons are clickable on all viewports 
    [Galaxy S9+] › tests\e2e\blog-seo.spec.ts:6:7 › blog seo › exposes title description and canonical on blog detail pages 
    [Galaxy S9+] › tests\e2e\blog-validation.spec.ts:9:5 › Blog Management Full Flow - Real Domain Validation 
    [Galaxy S9+] › tests\e2e\contact-submit.spec.ts:27:7 › contact submit › creates an inquiry and shows it in admin list 
    [Galaxy S9+] › tests\e2e\contact-submit.spec.ts:58:7 › contact submit › submitting the public Contact.cshtml form shows the success message 
    [Galaxy S9+] › tests\e2e\dashboard-check.spec.ts:4:5 › check dashboard metrics ─────────────────
    [Galaxy S9+] › tests\e2e\full-admin-pages.spec.ts:5:5 › production: verify all admin pages load correctly 
    [Galaxy S9+] › tests\e2e\full-user-flow.spec.ts:6:7 › 프로덕션 사용자 흐름 테스트 › 홈페이지 → 로그인 → 대시보드 → 블로그 CRUD 
    [Galaxy S9+] › tests\e2e\inquiry-detail.spec.ts:9:7 › inquiry detail › shows the created inquiry and admin action links 
    [Galaxy S9+] › tests\e2e\login-test.spec.ts:8:5 › Admin Login Page - prerendered HTML contains the form before JS runs 
    [Galaxy S9+] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics 
    [Galaxy S9+] › tests\e2e\route-isolation.spec.ts:6:7 › route isolation › public home does not boot the admin app 
    [Public Smoke] › tests\e2e\public-smoke.spec.ts:7:7 › public smoke › @smoke loads the home page and key public pages with SEO basics 
  3 skipped
  40 did not run
  23 passed (31.6m)
