1236 lines
52 KiB
JSON
1236 lines
52 KiB
JSON
{
|
|
"config": {
|
|
"argv": [
|
|
"/home/hermes/.hermes/node/bin/node",
|
|
"/home/hermes/worktrees/find-word-v0.2.3/node_modules/.bin/playwright",
|
|
"test",
|
|
"--reporter=list,json"
|
|
],
|
|
"configFile": "/home/hermes/worktrees/find-word-v0.2.3/playwright.config.ts",
|
|
"rootDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser",
|
|
"failOnFlakyTests": false,
|
|
"forbidOnly": false,
|
|
"fullyParallel": true,
|
|
"globalSetup": null,
|
|
"globalTeardown": null,
|
|
"globalTimeout": 0,
|
|
"grep": {},
|
|
"grepInvert": null,
|
|
"maxFailures": 0,
|
|
"metadata": {
|
|
"actualWorkers": 2
|
|
},
|
|
"preserveOutput": "always",
|
|
"projects": [
|
|
{
|
|
"outputDir": "/home/hermes/worktrees/find-word-v0.2.3/test-results",
|
|
"repeatEach": 1,
|
|
"retries": 0,
|
|
"metadata": {
|
|
"actualWorkers": 2
|
|
},
|
|
"id": "desktop",
|
|
"name": "desktop",
|
|
"testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser",
|
|
"testIgnore": [],
|
|
"testMatch": [
|
|
"**/*.@(spec|test).?(c|m)[jt]s?(x)"
|
|
],
|
|
"timeout": 120000
|
|
},
|
|
{
|
|
"outputDir": "/home/hermes/worktrees/find-word-v0.2.3/test-results",
|
|
"repeatEach": 1,
|
|
"retries": 0,
|
|
"metadata": {
|
|
"actualWorkers": 2
|
|
},
|
|
"id": "mobile",
|
|
"name": "mobile",
|
|
"testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser",
|
|
"testIgnore": [],
|
|
"testMatch": [
|
|
"**/*.@(spec|test).?(c|m)[jt]s?(x)"
|
|
],
|
|
"timeout": 120000
|
|
}
|
|
],
|
|
"filteredProjects": [
|
|
{
|
|
"grep": {},
|
|
"grepInvert": null,
|
|
"outputDir": "/home/hermes/worktrees/find-word-v0.2.3/test-results",
|
|
"repeatEach": 1,
|
|
"retries": 0,
|
|
"metadata": {
|
|
"actualWorkers": 2
|
|
},
|
|
"name": "desktop",
|
|
"testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser",
|
|
"snapshotDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser",
|
|
"testIgnore": [],
|
|
"testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)",
|
|
"timeout": 120000,
|
|
"use": {
|
|
"baseURL": "http://127.0.0.1:4173",
|
|
"launchOptions": {
|
|
"executablePath": "/usr/bin/google-chrome",
|
|
"chromiumSandbox": true
|
|
},
|
|
"trace": "retain-on-failure",
|
|
"viewport": {
|
|
"width": 1280,
|
|
"height": 1000
|
|
}
|
|
},
|
|
"dependencies": [],
|
|
"ignoreSnapshots": false,
|
|
"__projectId": "desktop"
|
|
},
|
|
{
|
|
"grep": {},
|
|
"grepInvert": null,
|
|
"outputDir": "/home/hermes/worktrees/find-word-v0.2.3/test-results",
|
|
"repeatEach": 1,
|
|
"retries": 0,
|
|
"metadata": {
|
|
"actualWorkers": 2
|
|
},
|
|
"name": "mobile",
|
|
"testDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser",
|
|
"snapshotDir": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser",
|
|
"testIgnore": [],
|
|
"testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)",
|
|
"timeout": 120000,
|
|
"use": {
|
|
"baseURL": "http://127.0.0.1:4173",
|
|
"launchOptions": {
|
|
"executablePath": "/usr/bin/google-chrome",
|
|
"chromiumSandbox": true
|
|
},
|
|
"trace": "retain-on-failure",
|
|
"viewport": {
|
|
"width": 360,
|
|
"height": 800
|
|
},
|
|
"isMobile": true,
|
|
"hasTouch": true
|
|
},
|
|
"dependencies": [],
|
|
"ignoreSnapshots": false,
|
|
"__projectId": "mobile"
|
|
}
|
|
],
|
|
"quiet": false,
|
|
"reporter": [
|
|
[
|
|
"list"
|
|
],
|
|
[
|
|
"json"
|
|
]
|
|
],
|
|
"reportSlowTests": {
|
|
"max": 5,
|
|
"threshold": 300000
|
|
},
|
|
"shard": null,
|
|
"tags": [],
|
|
"updateSnapshots": "default",
|
|
"updateSourceMethod": "patch",
|
|
"version": "1.64.0",
|
|
"workers": 2,
|
|
"webServer": {
|
|
"command": "npm run preview -- --port 4173 --strictPort",
|
|
"url": "http://127.0.0.1:4173",
|
|
"reuseExistingServer": false
|
|
}
|
|
},
|
|
"suites": [
|
|
{
|
|
"title": "audio.spec.ts",
|
|
"file": "audio.spec.ts",
|
|
"column": 0,
|
|
"line": 0,
|
|
"specs": [
|
|
{
|
|
"title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다",
|
|
"ok": false,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 0,
|
|
"parallelIndex": 0,
|
|
"status": "failed",
|
|
"duration": 26094,
|
|
"error": {
|
|
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
|
|
"stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:143:18",
|
|
"location": {
|
|
"file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts",
|
|
"column": 18,
|
|
"line": 143
|
|
},
|
|
"snippet": " 141 | expect([...requests].sort()).toEqual([...urls].sort());\n 142 | expect(external).toEqual([]);\n> 143 | expect(errors).toEqual([]);\n | ^\n 144 | expect(failed).toEqual([]);\n 145 | const path = info.outputPath(\"browser-audio-integrity.json\");\n 146 | writeFileSync("
|
|
},
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts",
|
|
"column": 18,
|
|
"line": 143
|
|
},
|
|
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n 141 | expect([...requests].sort()).toEqual([...urls].sort());\n 142 | expect(external).toEqual([]);\n> 143 | expect(errors).toEqual([]);\n | ^\n 144 | expect(failed).toEqual([]);\n 145 | const path = info.outputPath(\"browser-audio-integrity.json\");\n 146 | writeFileSync(\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:143:18"
|
|
}
|
|
],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:18:40.907Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "error-context",
|
|
"contentType": "text/markdown",
|
|
"path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md"
|
|
},
|
|
{
|
|
"name": "trace",
|
|
"contentType": "application/zip",
|
|
"path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip"
|
|
}
|
|
],
|
|
"errorLocation": {
|
|
"file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts",
|
|
"column": 18,
|
|
"line": 143
|
|
}
|
|
}
|
|
],
|
|
"status": "unexpected"
|
|
}
|
|
],
|
|
"id": "87be2dcdb54c25970a35-d93130048b0c80dc4106",
|
|
"file": "audio.spec.ts",
|
|
"line": 7,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다",
|
|
"ok": false,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 4,
|
|
"parallelIndex": 1,
|
|
"status": "failed",
|
|
"duration": 21579,
|
|
"error": {
|
|
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ]\u001b[39m",
|
|
"stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:143:18",
|
|
"location": {
|
|
"file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts",
|
|
"column": 18,
|
|
"line": 143
|
|
},
|
|
"snippet": " 141 | expect([...requests].sort()).toEqual([...urls].sort());\n 142 | expect(external).toEqual([]);\n> 143 | expect(errors).toEqual([]);\n | ^\n 144 | expect(failed).toEqual([]);\n 145 | const path = info.outputPath(\"browser-audio-integrity.json\");\n 146 | writeFileSync("
|
|
},
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts",
|
|
"column": 18,
|
|
"line": 143
|
|
},
|
|
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[32m- Array []\u001b[39m\n\u001b[31m+ Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ]\u001b[39m\n\n 141 | expect([...requests].sort()).toEqual([...urls].sort());\n 142 | expect(external).toEqual([]);\n> 143 | expect(errors).toEqual([]);\n | ^\n 144 | expect(failed).toEqual([]);\n 145 | const path = info.outputPath(\"browser-audio-integrity.json\");\n 146 | writeFileSync(\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:143:18"
|
|
}
|
|
],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:20:33.265Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "error-context",
|
|
"contentType": "text/markdown",
|
|
"path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md"
|
|
},
|
|
{
|
|
"name": "trace",
|
|
"contentType": "application/zip",
|
|
"path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip"
|
|
}
|
|
],
|
|
"errorLocation": {
|
|
"file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts",
|
|
"column": 18,
|
|
"line": 143
|
|
}
|
|
}
|
|
],
|
|
"status": "unexpected"
|
|
}
|
|
],
|
|
"id": "87be2dcdb54c25970a35-9f9914a49e88a65e211e",
|
|
"file": "audio.spec.ts",
|
|
"line": 7,
|
|
"column": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "game.spec.ts",
|
|
"file": "game.spec.ts",
|
|
"column": 0,
|
|
"line": 0,
|
|
"specs": [
|
|
{
|
|
"title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 1,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 47958,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:18:41.499Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "8b1bb1493a64c9fc3ab6-d223e249bc9a81f166b0",
|
|
"file": "game.spec.ts",
|
|
"line": 8,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 2,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 17288,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:19:09.800Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "8b1bb1493a64c9fc3ab6-ab45385409470bdf7ef2",
|
|
"file": "game.spec.ts",
|
|
"line": 130,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 2,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 16918,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:19:27.309Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "8b1bb1493a64c9fc3ab6-52922f8228abc9f39bfe",
|
|
"file": "game.spec.ts",
|
|
"line": 130,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 5,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 42808,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:20:34.074Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "8b1bb1493a64c9fc3ab6-e4766fea5c25788202a8",
|
|
"file": "game.spec.ts",
|
|
"line": 8,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 6,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 17531,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:20:57.406Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "8b1bb1493a64c9fc3ab6-84b7835dc149f0ebaeb2",
|
|
"file": "game.spec.ts",
|
|
"line": 130,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 6,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 17132,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:21:15.131Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "8b1bb1493a64c9fc3ab6-05de2d3047fb33c59bd2",
|
|
"file": "game.spec.ts",
|
|
"line": 130,
|
|
"column": 3
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "release.spec.ts",
|
|
"file": "release.spec.ts",
|
|
"column": 0,
|
|
"line": 0,
|
|
"specs": [
|
|
{
|
|
"title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 1,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 420,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:19:30.123Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "7324964a6aa193ebd049-64d3eb3e631d5e3a7482",
|
|
"file": "release.spec.ts",
|
|
"line": 6,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 1,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 29,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:19:30.577Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "7324964a6aa193ebd049-a9a4a24641e1381cb656",
|
|
"file": "release.spec.ts",
|
|
"line": 24,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 5,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 289,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:21:17.169Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "7324964a6aa193ebd049-b2bb581aa05f7bfc0a11",
|
|
"file": "release.spec.ts",
|
|
"line": 6,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 5,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 17,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:21:17.482Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "7324964a6aa193ebd049-87e393dee6d378b60b88",
|
|
"file": "release.spec.ts",
|
|
"line": 24,
|
|
"column": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "rounds.spec.ts",
|
|
"file": "rounds.spec.ts",
|
|
"column": 0,
|
|
"line": 0,
|
|
"specs": [
|
|
{
|
|
"title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 1,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 60892,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:19:30.627Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "runtime-audit",
|
|
"contentType": "application/json",
|
|
"body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjM3NTk4NjM5NDU1NzgyNAogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDMuODg3OTgxODU5NDEwNDMwNwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDguMjU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogOC4zOTk5NzczMjQyNjMwNAogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMDU1OTg2Mzk0NTU3ODIzCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDguODMxOTk1NDY0ODUyNjA3CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogOC44MzE5OTU0NjQ4NTI2MDcKICAgICAgfQogICAgXSwKICAgICJzdG9wcyI6IDE1CiAgfQp9"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "5d80d20ef944a60dee29-84fa7dcc311fcc9f3abb",
|
|
"file": "rounds.spec.ts",
|
|
"line": 35,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다",
|
|
"ok": false,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 2,
|
|
"parallelIndex": 0,
|
|
"status": "failed",
|
|
"duration": 9175,
|
|
"error": {
|
|
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[32m- \"errors\": Array [],\u001b[39m\n\u001b[31m+ \"errors\": Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"external\": Array [],\u001b[22m\n\u001b[2m \"failed\": Array [],\u001b[22m\n\u001b[2m }\u001b[22m",
|
|
"stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[32m- \"errors\": Array [],\u001b[39m\n\u001b[31m+ \"errors\": Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"external\": Array [],\u001b[22m\n\u001b[2m \"failed\": Array [],\u001b[22m\n\u001b[2m }\u001b[22m\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts:170:40",
|
|
"location": {
|
|
"file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts",
|
|
"column": 40,
|
|
"line": 170
|
|
},
|
|
"snippet": " 168 | expect(probe.stops).toBe(24);\n 169 | expect(requests).toEqual(ENVIRONMENTS.map((e) => `/ambience/${e.id}.wav`));\n> 170 | expect({ errors, failed, external }).toEqual({\n | ^\n 171 | errors: [],\n 172 | failed: [],\n 173 | external: [],"
|
|
},
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts",
|
|
"column": 40,
|
|
"line": 170
|
|
},
|
|
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[32m- \"errors\": Array [],\u001b[39m\n\u001b[31m+ \"errors\": Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"external\": Array [],\u001b[22m\n\u001b[2m \"failed\": Array [],\u001b[22m\n\u001b[2m }\u001b[22m\n\n 168 | expect(probe.stops).toBe(24);\n 169 | expect(requests).toEqual(ENVIRONMENTS.map((e) => `/ambience/${e.id}.wav`));\n> 170 | expect({ errors, failed, external }).toEqual({\n | ^\n 171 | errors: [],\n 172 | failed: [],\n 173 | external: [],\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts:170:40"
|
|
}
|
|
],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:19:44.275Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "error-context",
|
|
"contentType": "text/markdown",
|
|
"path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-desktop/error-context.md"
|
|
},
|
|
{
|
|
"name": "trace",
|
|
"contentType": "application/zip",
|
|
"path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-desktop/trace.zip"
|
|
}
|
|
],
|
|
"errorLocation": {
|
|
"file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts",
|
|
"column": 40,
|
|
"line": 170
|
|
}
|
|
}
|
|
],
|
|
"status": "unexpected"
|
|
}
|
|
],
|
|
"id": "5d80d20ef944a60dee29-67ee259e43d6a5758a4c",
|
|
"file": "rounds.spec.ts",
|
|
"line": 135,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 3,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 17276,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:19:55.385Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "5d80d20ef944a60dee29-b3270c20fde2468292dc",
|
|
"file": "rounds.spec.ts",
|
|
"line": 178,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 5,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 63184,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:21:17.517Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "runtime-audit",
|
|
"contentType": "application/json",
|
|
"body": "ewogICJlcnJvcnMiOiBbXSwKICAiZmFpbGVkIjogW10sCiAgImV4dGVybmFsIjogW10sCiAgImF1ZGlvIjogewogICAgInN0YXJ0cyI6IFsKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA3LjA1NTk4NjM5NDU1NzgyMwogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiAzLjkxMTk5NTQ2NDg1MjYwNzYKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogdHJ1ZSwKICAgICAgICAiZHVyYXRpb24iOiAxMgogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiBmYWxzZSwKICAgICAgICAiZHVyYXRpb24iOiA4LjQ3MTk5NTQ2NDg1MjYwOAogICAgICB9LAogICAgICB7CiAgICAgICAgImxvb3AiOiB0cnVlLAogICAgICAgICJkdXJhdGlvbiI6IDEyCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IGZhbHNlLAogICAgICAgICJkdXJhdGlvbiI6IDcuMzkxOTk1NDY0ODUyNjA4CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogMy45ODM5OTA5Mjk3MDUyMTU0CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogNy4wNTU5ODYzOTQ1NTc4MjMKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogMTAuODcxOTk1NDY0ODUyNjA4CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibG9vcCI6IHRydWUsCiAgICAgICAgImR1cmF0aW9uIjogMTIKICAgICAgfSwKICAgICAgewogICAgICAgICJsb29wIjogZmFsc2UsCiAgICAgICAgImR1cmF0aW9uIjogMTAuODcxOTk1NDY0ODUyNjA4CiAgICAgIH0KICAgIF0sCiAgICAic3RvcHMiOiAxNQogIH0KfQ=="
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "5d80d20ef944a60dee29-13a6d49b3ccf87a3e87d",
|
|
"file": "rounds.spec.ts",
|
|
"line": 35,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다",
|
|
"ok": false,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 6,
|
|
"parallelIndex": 1,
|
|
"status": "failed",
|
|
"duration": 6738,
|
|
"error": {
|
|
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[32m- \"errors\": Array [],\u001b[39m\n\u001b[31m+ \"errors\": Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"external\": Array [],\u001b[22m\n\u001b[2m \"failed\": Array [],\u001b[22m\n\u001b[2m }\u001b[22m",
|
|
"stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[32m- \"errors\": Array [],\u001b[39m\n\u001b[31m+ \"errors\": Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"external\": Array [],\u001b[22m\n\u001b[2m \"failed\": Array [],\u001b[22m\n\u001b[2m }\u001b[22m\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts:170:40",
|
|
"location": {
|
|
"file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts",
|
|
"column": 40,
|
|
"line": 170
|
|
},
|
|
"snippet": " 168 | expect(probe.stops).toBe(24);\n 169 | expect(requests).toEqual(ENVIRONMENTS.map((e) => `/ambience/${e.id}.wav`));\n> 170 | expect({ errors, failed, external }).toEqual({\n | ^\n 171 | errors: [],\n 172 | failed: [],\n 173 | external: [],"
|
|
},
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts",
|
|
"column": 40,
|
|
"line": 170
|
|
},
|
|
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[32m- \"errors\": Array [],\u001b[39m\n\u001b[31m+ \"errors\": Array [\u001b[39m\n\u001b[31m+ \"Failed to load resource: the server responded with a status of 404 (Not Found)\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"external\": Array [],\u001b[22m\n\u001b[2m \"failed\": Array [],\u001b[22m\n\u001b[2m }\u001b[22m\n\n 168 | expect(probe.stops).toBe(24);\n 169 | expect(requests).toEqual(ENVIRONMENTS.map((e) => `/ambience/${e.id}.wav`));\n> 170 | expect({ errors, failed, external }).toEqual({\n | ^\n 171 | errors: [],\n 172 | failed: [],\n 173 | external: [],\n at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts:170:40"
|
|
}
|
|
],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:21:32.301Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "error-context",
|
|
"contentType": "text/markdown",
|
|
"path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-mobile/error-context.md"
|
|
},
|
|
{
|
|
"name": "trace",
|
|
"contentType": "application/zip",
|
|
"path": "/home/hermes/worktrees/find-word-v0.2.3/test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-mobile/trace.zip"
|
|
}
|
|
],
|
|
"errorLocation": {
|
|
"file": "/home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts",
|
|
"column": 40,
|
|
"line": 170
|
|
}
|
|
}
|
|
],
|
|
"status": "unexpected"
|
|
}
|
|
],
|
|
"id": "5d80d20ef944a60dee29-986d947b51ae90d63e40",
|
|
"file": "rounds.spec.ts",
|
|
"line": 135,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 7,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 15645,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:21:40.140Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "5d80d20ef944a60dee29-cf677d38ab55c08f0ba0",
|
|
"file": "rounds.spec.ts",
|
|
"line": 178,
|
|
"column": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "ui.spec.ts",
|
|
"file": "ui.spec.ts",
|
|
"column": 0,
|
|
"line": 0,
|
|
"specs": [
|
|
{
|
|
"title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 3,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 1376,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:20:12.943Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "d425444c687fa36b5882-2f651fec20696a7afab2",
|
|
"file": "ui.spec.ts",
|
|
"line": 4,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "난이도 설명은 모바일에서도 보인다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 3,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 1043,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:20:14.341Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "d425444c687fa36b5882-7db7ff839d8655c45b58",
|
|
"file": "ui.spec.ts",
|
|
"line": 52,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 3,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 17545,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:20:15.409Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "d425444c687fa36b5882-7518419f9a74847f1877",
|
|
"file": "ui.spec.ts",
|
|
"line": 68,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "desktop",
|
|
"projectName": "desktop",
|
|
"results": [
|
|
{
|
|
"workerIndex": 1,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 737,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:20:31.555Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "d425444c687fa36b5882-8c65d4cc796bafc3d050",
|
|
"file": "ui.spec.ts",
|
|
"line": 121,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 7,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 877,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:21:55.999Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "d425444c687fa36b5882-42b32cae06f88c5571de",
|
|
"file": "ui.spec.ts",
|
|
"line": 4,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "난이도 설명은 모바일에서도 보인다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 7,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 588,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:21:56.893Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "d425444c687fa36b5882-9bad02fda46134f05a95",
|
|
"file": "ui.spec.ts",
|
|
"line": 52,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "한국어 제목은 단어 중간에서 줄바꿈하지 않는다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 7,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 17118,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:21:57.499Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "d425444c687fa36b5882-6ac401056de90e7e3757",
|
|
"file": "ui.spec.ts",
|
|
"line": 68,
|
|
"column": 1
|
|
},
|
|
{
|
|
"title": "시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 120000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "mobile",
|
|
"projectName": "mobile",
|
|
"results": [
|
|
{
|
|
"workerIndex": 7,
|
|
"parallelIndex": 1,
|
|
"status": "passed",
|
|
"duration": 319,
|
|
"errors": [],
|
|
"stdout": [],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-10-14T08:22:14.634Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "d425444c687fa36b5882-c761fe2d98a1c83f2536",
|
|
"file": "ui.spec.ts",
|
|
"line": 121,
|
|
"column": 1
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"errors": [],
|
|
"stats": {
|
|
"startTime": "2026-10-14T08:18:36.344Z",
|
|
"duration": 224479.539,
|
|
"expected": 22,
|
|
"skipped": 0,
|
|
"unexpected": 4,
|
|
"flaky": 0
|
|
}
|
|
} |