feat: release Find-Word v0.2.3
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 1 passed (1)
|
||||
Tests 9 passed | 6 skipped (15)
|
||||
Start at 07:57:16
|
||||
Duration 914ms (environment 77%, setup 12%, transform 6%, tests 4%, import 1%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/game.test.ts (9 tests | 3 failed) 41ms
|
||||
❯ 출제와 정답 판정 (5)
|
||||
× 세 문제를 한 단계로 출제하고 혼합 응답 방식과 고유 문제를 보장한다 8ms
|
||||
❯ 게임 상태·점수·경합 방지 (3)
|
||||
× 세 문제를 끝내면 정답률·연속 정답·단계별 결과를 집계한다 2ms
|
||||
× 시작 단계 1~5를 명시하면 세 문항 모두 같은 level/db이고 범위 밖 단계도 안전하다 2ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 3 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/game.test.ts > 출제와 정답 판정 > 세 문제를 한 단계로 출제하고 혼합 응답 방식과 고유 문제를 보장한다
|
||||
AssertionError: expected [ …(10) ] to have a length of 3 but got 10
|
||||
|
||||
- Expected
|
||||
+ Received
|
||||
|
||||
- 3
|
||||
+ 10
|
||||
|
||||
❯ tests/game.test.ts:51:23
|
||||
49| it("세 문제를 한 단계로 출제하고 혼합 응답 방식과 고유 문제를 보장한다", () => {
|
||||
50| const questions = createQuestions(42, "mixed");
|
||||
51| expect(questions).toHaveLength(3);
|
||||
| ^
|
||||
52| expect(new Set(questions.map((q) => q.pattern.id)).size).toBe(3);
|
||||
53| expect(new Set(questions.map((q) => q.environment.id)).size).toBe(…
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/3]⎯
|
||||
|
||||
FAIL tests/game.test.ts > 게임 상태·점수·경합 방지 > 세 문제를 끝내면 정답률·연속 정답·단계별 결과를 집계한다
|
||||
AssertionError: expected 'ready' to be 'results' // Object.is equality
|
||||
|
||||
Expected: "results"
|
||||
Received: "ready"
|
||||
|
||||
❯ tests/game.test.ts:153:25
|
||||
151| state = gameReducer(state, { type: "NEXT" });
|
||||
152| }
|
||||
153| expect(state.phase).toBe("results");
|
||||
| ^
|
||||
154| expect(state.bestStreak).toBe(2);
|
||||
155| expect(state.streak).toBe(0);
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/3]⎯
|
||||
|
||||
FAIL tests/game.test.ts > 시작 단계 1~5를 명시하면 세 문항 모두 같은 level/db이고 범위 밖 단계도 안전하다
|
||||
AssertionError: expected [ [ 1, 6 ], [ 1, 6 ], [ 2, 3 ], …(7) ] to deeply equal [ [ 1, 6 ], [ 1, 6 ], [ 1, 6 ] ]
|
||||
|
||||
- Expected
|
||||
+ Received
|
||||
|
||||
@@ -6,9 +6,37 @@
|
||||
[
|
||||
1,
|
||||
6,
|
||||
],
|
||||
[
|
||||
- 1,
|
||||
- 6,
|
||||
+ 2,
|
||||
+ 3,
|
||||
+ ],
|
||||
+ [
|
||||
+ 2,
|
||||
+ 3,
|
||||
+ ],
|
||||
+ [
|
||||
+ 3,
|
||||
+ 0,
|
||||
+ ],
|
||||
+ [
|
||||
+ 3,
|
||||
+ 0,
|
||||
+ ],
|
||||
+ [
|
||||
+ 4,
|
||||
+ -3,
|
||||
+ ],
|
||||
+ [
|
||||
+ 4,
|
||||
+ -3,
|
||||
+ ],
|
||||
+ [
|
||||
+ 5,
|
||||
+ -6,
|
||||
+ ],
|
||||
+ [
|
||||
+ 5,
|
||||
+ -6,
|
||||
],
|
||||
]
|
||||
|
||||
❯ tests/game.test.ts:175:49
|
||||
173| for (const level of LEVELS) {
|
||||
174| const questions = createQuestions(42, "mixed", "rotate", level.id);
|
||||
175| expect(questions.map(q => [q.level, q.db])).toEqual(Array(3).fill(…
|
||||
| ^
|
||||
176| }
|
||||
177| for (const [input, expected] of [[NaN, 1], [-4, 1], [99, 5], [2.7, 3…
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/3]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 3 failed | 6 passed (9)
|
||||
Start at 07:56:19
|
||||
Duration 1.22s (environment 82%, setup 9%, transform 4%, tests 4%, worker 1%, import 1%)
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/game.test.ts (9 tests | 1 failed) 26ms
|
||||
❯ 출제와 정답 판정 (5)
|
||||
× 목표 WAV 100개 모두 같은 명시적 cache-busting 버전과 정답 mapping을 유지한다 13ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/game.test.ts > 출제와 정답 판정 > 목표 WAV 100개 모두 같은 명시적 cache-busting 버전과 정답 mapping을 유지한다
|
||||
AssertionError: expected 96 to be 100 // Object.is equality
|
||||
|
||||
- Expected
|
||||
+ Received
|
||||
|
||||
- 100
|
||||
+ 96
|
||||
|
||||
❯ tests/game.test.ts:21:28
|
||||
19| .map((q) => [q.id, q]),
|
||||
20| );
|
||||
21| expect(questions.size).toBe(100);
|
||||
| ^
|
||||
22| const versions = new Set<string | null>();
|
||||
23| for (const q of questions.values()) {
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 1 failed | 8 passed (9)
|
||||
Start at 07:56:50
|
||||
Duration 861ms (environment 76%, setup 13%, transform 6%, tests 4%, worker 1%, import 1%)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 1 passed (1)
|
||||
Tests 15 passed (15)
|
||||
Start at 07:57:18
|
||||
Duration 879ms (environment 75%, setup 13%, transform 5%, tests 4%, import 1%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/game.test.ts (15 tests | 7 failed) 30ms
|
||||
❯ 출제와 정답 판정 (5)
|
||||
× 목표 WAV 100개 모두 같은 명시적 cache-busting 버전과 정답 mapping을 유지한다 12ms
|
||||
× SNR을 정수 -12~12 dB로 제한하고 현재/남은 문항에 일관되게 적용한다 1ms
|
||||
× readyで中止しても無応答を加算せず終了結果を保つ 3ms
|
||||
× loadingで中止しても無応答を加算せず終了結果を保つ 1ms
|
||||
× playingで中止しても無応答を加算せず終了結果を保つ 1ms
|
||||
× answerで中止しても無応答を加算せず終了結果を保つ 1ms
|
||||
× feedbackで中止しても無応答を加算せず終了結果を保つ 1ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 7 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/game.test.ts > 출제와 정답 판정 > 목표 WAV 100개 모두 같은 명시적 cache-busting 버전과 정답 mapping을 유지한다
|
||||
AssertionError: expected 96 to be 100 // Object.is equality
|
||||
|
||||
- Expected
|
||||
+ Received
|
||||
|
||||
- 100
|
||||
+ 96
|
||||
|
||||
❯ tests/game.test.ts:21:28
|
||||
19| .map((q) => [q.id, q]),
|
||||
20| );
|
||||
21| expect(questions.size).toBe(100);
|
||||
| ^
|
||||
22| const versions = new Set<string | null>();
|
||||
23| for (const q of questions.values()) {
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/7]⎯
|
||||
|
||||
FAIL tests/game.test.ts > SNR을 정수 -12~12 dB로 제한하고 현재/남은 문항에 일관되게 적용한다
|
||||
TypeError: Cannot read properties of undefined (reading 'questions')
|
||||
❯ tests/game.test.ts:186:21
|
||||
184| for (const [input, expected] of [[-99, -12], [99, 12], [NaN, 3], [1.…
|
||||
185| const adjusted = gameReducer(state, { type: "SNR", db: input! });
|
||||
186| expect(adjusted.questions.map(q => q.db)).toEqual([expected, expec…
|
||||
| ^
|
||||
187| }
|
||||
188| for (const type of ["PLAY", "STARTED", "ENDED"] as const) state = ga…
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/7]⎯
|
||||
|
||||
FAIL tests/game.test.ts > readyで中止しても無応答を加算せず終了結果を保つ
|
||||
FAIL tests/game.test.ts > loadingで中止しても無応答を加算せず終了結果を保つ
|
||||
FAIL tests/game.test.ts > playingで中止しても無応答を加算せず終了結果を保つ
|
||||
FAIL tests/game.test.ts > answerで中止しても無応答を加算せず終了結果を保つ
|
||||
FAIL tests/game.test.ts > feedbackで中止しても無応答を加算せず終了結果を保つ
|
||||
AssertionError: expected undefined to match object { phase: 'results', …(2) }
|
||||
|
||||
- Expected:
|
||||
{
|
||||
"answers": [],
|
||||
"endedEarly": true,
|
||||
"phase": "results",
|
||||
}
|
||||
|
||||
+ Received:
|
||||
undefined
|
||||
|
||||
❯ tests/game.test.ts:199:17
|
||||
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/7]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 7 failed | 8 passed (15)
|
||||
Start at 07:56:51
|
||||
Duration 918ms (environment 74%, setup 14%, transform 6%, tests 4%, import 1%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 1 passed (1)
|
||||
Tests 18 passed (18)
|
||||
Start at 07:59:18
|
||||
Duration 4.22s (tests 80%, environment 14%, setup 2%, transform 2%, import 1%)
|
||||
|
||||
@@ -0,0 +1,461 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/App.test.tsx (18 tests | 1 failed) 3085ms
|
||||
❯ 시작부터 결과까지 사용자 흐름 (13)
|
||||
× 다섯 난이도의 SNR과 음성·배경 크기 관계를 설명하고 결과에도 표시한다 112ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 다섯 난이도의 SNR과 음성·배경 크기 관계를 설명하고 결과에도 표시한다
|
||||
TestingLibraryElementError: Found multiple elements with the text: 음성이 배경보다 6 dB 커요.
|
||||
|
||||
Here are the matching elements:
|
||||
|
||||
Ignored nodes: comments, script, style
|
||||
[36m<p[39m
|
||||
[33mclass[39m=[32m"db-note"[39m
|
||||
[36m>[39m
|
||||
[0m음성이 배경보다 6 dB 커요.[0m
|
||||
[36m<br />[39m
|
||||
[0m소리에 익숙해지기[0m
|
||||
[36m</p>[39m
|
||||
|
||||
Ignored nodes: comments, script, style
|
||||
[36m<p[39m
|
||||
[33mid[39m=[32m"snr-help"[39m
|
||||
[36m>[39m
|
||||
[0m음성이 배경보다 6 dB 커요.[0m
|
||||
[0m 범위 −12~+12 dB · 1 dB 간격. 양수는 음성이 더 크게, 0은 같게, 음수는 더 작게 들려요. 변경은 다음 재생·재청취부터 적용돼요.[0m
|
||||
[36m</p>[39m
|
||||
|
||||
(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).
|
||||
|
||||
Ignored nodes: comments, script, style
|
||||
[36m<body>[39m
|
||||
[36m<div>[39m
|
||||
[36m<a[39m
|
||||
[33mclass[39m=[32m"skip-link"[39m
|
||||
[33mhref[39m=[32m"#main"[39m
|
||||
[36m>[39m
|
||||
[0m본문으로 건너뛰기[0m
|
||||
[36m</a>[39m
|
||||
[36m<header[39m
|
||||
[33mclass[39m=[32m"header wrap"[39m
|
||||
[36m>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"brand"[39m
|
||||
[36m>[39m
|
||||
[36m<span[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[33mclass[39m=[32m"brand-mark"[39m
|
||||
[36m>[39m
|
||||
[36m<i />[39m
|
||||
[36m<i />[39m
|
||||
[36m<i />[39m
|
||||
[36m<i />[39m
|
||||
[36m</span>[39m
|
||||
[36m<h1>[39m
|
||||
[0m단어를 맞춰라[0m
|
||||
[36m</h1>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"version"[39m
|
||||
[36m>[39m
|
||||
[0mv0.1.1[0m
|
||||
[36m</span>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"header-actions"[39m
|
||||
[36m>[39m
|
||||
[36m<button[39m
|
||||
[33mclass[39m=[32m"text-button"[39m
|
||||
[36m>[39m
|
||||
[0m문제 풀이 종료[0m
|
||||
[36m</button>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"little-dot"[39m
|
||||
[36m/>[39m
|
||||
[0m소리에 집중하는 시간[0m
|
||||
[36m</div>[39m
|
||||
[36m</header>[39m
|
||||
[36m<main[39m
|
||||
[33mclass[39m=[32m"wrap"[39m
|
||||
[33mid[39m=[32m"main"[39m
|
||||
[33mtabindex[39m=[32m"-1"[39m
|
||||
[36m>[39m
|
||||
[36m<section[39m
|
||||
[33maria-label[39m=[32m"단어 찾기 게임"[39m
|
||||
[33mclass[39m=[32m"game-layout"[39m
|
||||
[36m>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"game-top"[39m
|
||||
[36m>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"eyebrow"[39m
|
||||
[36m>[39m
|
||||
[0m나의 소리 탐험[0m
|
||||
[36m</span>[39m
|
||||
[36m<span>[39m
|
||||
[0m문제 [0m
|
||||
[36m<b>[39m
|
||||
[0m01[0m
|
||||
[36m</b>[39m
|
||||
[0m / [0m
|
||||
[0m3[0m
|
||||
[36m</span>[39m
|
||||
[36m</div>[39m
|
||||
[36m<progress[39m
|
||||
[33maria-label[39m=[32m"전체 진행률"[39m
|
||||
[33mmax[39m=[32m"3"[39m
|
||||
[33mvalue[39m=[32m"0"[39m
|
||||
[36m/>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"game-columns"[39m
|
||||
[36m>[39m
|
||||
[36m<aside[39m
|
||||
[33mclass[39m=[32m"environment-panel"[39m
|
||||
[36m>[39m
|
||||
[36m<p[39m
|
||||
[33mclass[39m=[32m"eyebrow"[39m
|
||||
[36m>[39m
|
||||
[0m지금 듣고 있는 공간[0m
|
||||
[36m</p>[39m
|
||||
[36m<h2>[39m
|
||||
[0m길거리[0m
|
||||
[36m</h2>[39m
|
||||
[36m<p>[39m
|
||||
[0m지나가는 차와 도시의 웅성임[0m
|
||||
[36m</p>[39m
|
||||
[36m<div[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[33mclass[39m=[32m"mascot small"[39m
|
||||
[36m>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"ear left"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"ear right"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"eye left"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"eye right"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"smile"[39m
|
||||
[36m/>[39m
|
||||
[36m<b>[39m
|
||||
[0mS[0m
|
||||
[36m</b>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[33mclass[39m=[32m"sound-wave "[39m
|
||||
[36m>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 10px; animation-delay: 0s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 33.799955450859244px; animation-delay: 0.05s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 16.132986448643948px; animation-delay: 0.1s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 32.219552375865575px; animation-delay: 0.15000000000000002s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 21.858720427326595px; animation-delay: 0.2s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 29.163690702963766px; animation-delay: 0.25s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 26.796992502245015px; animation-delay: 0.30000000000000004s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 24.835290693688798px; animation-delay: 0.35000000000000003s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 30.619883556555898px; animation-delay: 0.4s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 35.39139668035928px; animation-delay: 0.45s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 71.52943948029164px; animation-delay: 0.5s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 19.53593765210872px; animation-delay: 0.55s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 73.98674560913082px; animation-delay: 0.6000000000000001s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 16.952742107140878px; animation-delay: 0.65s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 72.19510052760725px; animation-delay: 0.7000000000000001s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 32.979734657418774px; animation-delay: 0.75s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 66.27347594564635px; animation-delay: 0.8s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 47.480789758355044px; animation-delay: 0.8500000000000001s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 56.615089141222136px; animation-delay: 0.9s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 59.492984932238116px; animation-delay: 0.9500000000000001s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 43.861291911681526px; animation-delay: 1s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 68.21866699734562px; animation-delay: 1.05s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 28.858982496016484px; animation-delay: 1.1s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 73.07841912260051px; animation-delay: 1.1500000000000001s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 12.60436847039135px; animation-delay: 1.2000000000000002s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 73.74953619965402px; animation-delay: 1.25s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 23.8231850360459px; animation-delay: 1.3s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 32.57029511072814px; animation-delay: 1.35s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 20.99981090780238px; animation-delay: 1.4000000000000001s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 29.735764963203792px; animation-delay: 1.4500000000000002s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 26.085500220240995px; animation-delay: 1.5s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 25.59070868046883px; animation-delay: 1.55s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 30.10305417152866px; animation-delay: 1.6s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 20.410372983416416px; animation-delay: 1.6500000000000001s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 32.785692656480826px; animation-delay: 1.7000000000000002s;"[39m
|
||||
[36m/>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"level-tag"[39m
|
||||
[36m>[39m
|
||||
[0m1[0m
|
||||
[0m단계 · [0m
|
||||
[0mSNR +6 dB[0m
|
||||
[36m</div>[39m
|
||||
[36m<p[39m
|
||||
[33mclass[39m=[32m"db-note"[39m
|
||||
[36m>[39m
|
||||
[0m음성이 배경보다 6 dB 커요.[0m
|
||||
[36m<br />[39m
|
||||
[0m소리에 익숙해지기[0m
|
||||
[36m</p>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"snr-control"[39m
|
||||
[36m>[39m
|
||||
[36m<label[39m
|
||||
[33mfor[39m=[32m"snr"[39m
|
||||
[36m>[39m
|
||||
[0m목표 음성 SNR[0m
|
||||
[36m</label>[39m
|
||||
[36m<input[39m
|
||||
[33maria-describedby[39m=[32m"snr-help"[39m
|
||||
[33mid[39m=[32m"snr"[39m
|
||||
[33mmax[39m=[32m"12"[39m
|
||||
[33mmin[39m=[32m"-12"[39m
|
||||
[33mstep[39m=[32m"1"[39m
|
||||
[33mtype[39m=[32m"range"[39m
|
||||
[33mvalue[39m=[32m"6"[39m
|
||||
[36m/>[39m
|
||||
[36m<output[39m
|
||||
[33mfor[39m=[32m"snr"[39m
|
||||
[36m>[39m
|
||||
[0mSNR +6 dB[0m
|
||||
[36m</output>[39m
|
||||
[36m<p[39m
|
||||
[33mid[39m=[32m"snr-help"[39m
|
||||
[36m>[39m
|
||||
[0m음성이 배경보다 6 dB 커요.[0m
|
||||
[0m 범위 −12~+12 dB · 1 dB 간격. 양수는 음성이 더 크게, 0은 같게, 음수는 더 작게 들려요. 변경은 다음 재생·재청취부터 적용돼요.[0m
|
||||
[36m</p>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"volume-row"[39m
|
||||
[36m>[39m
|
||||
[36m<label[39m
|
||||
[33mfor[39m=[32m"volume"[39m
|
||||
[36m>[39m
|
||||
[36m<span[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[36m>[39m
|
||||
[0m◖))[0m
|
||||
[36m</span>[39m
|
||||
[0m 전체 음량[0m
|
||||
[36m</label>[39m
|
||||
[36m<input[39m
|
||||
[33mid[39m=[32m"volume"[39m
|
||||
[33mmax[39m=[32m"100"[39m
|
||||
[33mmin[39m=[32m"0"[39m
|
||||
[33mtype[39m=[32m"range"[39m
|
||||
[33mvalue[39m=[32m"35"[39m
|
||||
[36m/>[39m
|
||||
[36m<output[39m
|
||||
[33mfor[39m=[32m"volume"[39m
|
||||
[36m>[39m
|
||||
[0m35[0m
|
||||
[0m%[0m
|
||||
[36m</output>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"mini-stats"[39m
|
||||
[36m>[39m
|
||||
[36m<span>[39m
|
||||
[0m점수 [0m
|
||||
[36m<b>[39m
|
||||
[0m0[0m
|
||||
[36m</b>[39m
|
||||
[36m</span>[39m
|
||||
[36m<span>[39m
|
||||
[0m연속 정답 [0m
|
||||
[36m<b>[39m
|
||||
[0m0[0m
|
||||
[36m</b>[39m
|
||||
[36m</span>[39m
|
||||
[36m</div>[39m
|
||||
[36m</aside>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"question-panel panel"[39m
|
||||
[36m>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"question-meta"[39m
|
||||
[36m>[39m
|
||||
[36m<span>[39m
|
||||
[0m바로잡은 말[0m
|
||||
[36m</span>[39m
|
||||
[36m<span>[39m
|
||||
[0m객관식[0m
|
||||
[36m</span>[39m
|
||||
[36m</div>[39m
|
||||
[36m<h2[39m
|
||||
[33mtabindex[39m=[32m"-1"[39m
|
||||
[36m>[39m
|
||||
[0m정정해서 알려준 단어는 무엇인가요?[0m
|
||||
[36m</h2>[39m
|
||||
[36m<p[39m
|
||||
[33mclass[39m=[32m"muted"[39m
|
||||
[36m>[39m
|
||||
[0m가장 또렷하게 기억나는 단어를 골라 주세요.[0m
|
||||
[36m</p>[39m
|
||||
[36m<div[39m
|
||||
[33maria-label[39m=[32m"답 선택"[39m
|
||||
[33mclass[39m=[32m"answers"[39m
|
||||
[33mrole[39m=[32m"group"[39m
|
||||
[36m>[39m
|
||||
[36m<button>[39m
|
||||
[36m<span[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[36m>[39m
|
||||
[0m1[0m
|
||||
[36m</span>[39m
|
||||
[0m시장[0m
|
||||
[36m</button>[39m
|
||||
[36m<button>[39m
|
||||
[36m<span[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[36m>[39m
|
||||
[0m2[0m
|
||||
[36m</span>[39m
|
||||
[0m지장[0m
|
||||
[36m</button>[39m
|
||||
[36m<button>[39m
|
||||
[36m<span[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[36m>[39m
|
||||
[0m3[0m
|
||||
[36m</span>[39m
|
||||
[0m사장[0m
|
||||
[36m</button>[39m
|
||||
[36m<button>[39m
|
||||
[36m<span[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[36m>[39m
|
||||
[0m4[0m
|
||||
[36m</span>[39m
|
||||
[0m신장[0m
|
||||
[36m</button>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"play-controls"[39m
|
||||
[36m>[39m
|
||||
[36m<button[39m
|
||||
[33mclass[39m=[32m"secondary"[39m
|
||||
[36m>[39m
|
||||
[0m↻ 다시 듣기[0m
|
||||
[36m</button>[39m
|
||||
[36m<small>[39m
|
||||
[0m다시 들어도 점수는 줄어들지 않아요.[0m
|
||||
[36m</small>[39m
|
||||
[36m</div>[39m
|
||||
[36m</div>[39m
|
||||
[36m</div>[39m
|
||||
[36m</section>[39m
|
||||
[36m</main>[39m
|
||||
[36m<footer[39m
|
||||
[33mclass[39m=[32m"footer wrap"[39m
|
||||
[36m>[39m
|
||||
[36m<p>[39m
|
||||
[0mDesigned by OZ at Heat-T Medical Inc.[0m
|
||||
[36m</p>[39m
|
||||
[36m<p>[39m
|
||||
[0m청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다.[0m
|
||||
[36m</p>[39m
|
||||
[36m<span>[39m
|
||||
[0m개인정보 수집 없이, 오직 플레이만.[0m
|
||||
[36m</span>[39m
|
||||
[36m</footer>[39m
|
||||
[36m</div>[39m
|
||||
[36m</body>[39m
|
||||
❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19
|
||||
❯ getElementError node_modules/@testing-library/dom/dist/query-helpers.js:20:35
|
||||
❯ getMultipleElementsFoundError node_modules/@testing-library/dom/dist/query-helpers.js:23:10
|
||||
❯ node_modules/@testing-library/dom/dist/query-helpers.js:55:13
|
||||
❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19
|
||||
❯ tests/App.test.tsx:127:22
|
||||
125| .toBeInTheDocument();
|
||||
126| expect
|
||||
127| .soft(screen.queryByText(description, { exact: false }))
|
||||
| ^
|
||||
128| .toBeInTheDocument();
|
||||
129| await f.user.click(
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 1 failed | 17 passed (18)
|
||||
Start at 07:59:02
|
||||
Duration 4.01s (tests 79%, environment 14%, transform 2%, setup 2%, import 1%)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 2 passed (2)
|
||||
Tests 19 passed (19)
|
||||
Start at 08:00:13
|
||||
Duration 1.06s (environment 76%, setup 12%, transform 8%, tests 2%, import 1%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/dsp.test.ts (4 tests | 2 failed) 13ms
|
||||
❯ 상대 dB와 결정론적 배경 합성 (4)
|
||||
× 여덟 환경은 고유 same-origin WAV이며 절차적 합성 매개변수를 갖지 않는다 6ms
|
||||
× 피크가 큰 녹음도 공통 감쇠로 합성 peak 0.8을 넘지 않고 SNR 비율을 보존한다 1ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/dsp.test.ts > 상대 dB와 결정론적 배경 합성 > 여덟 환경은 고유 same-origin WAV이며 절차적 합성 매개변수를 갖지 않는다
|
||||
AssertionError: expected 1 to be 8 // Object.is equality
|
||||
|
||||
- Expected
|
||||
+ Received
|
||||
|
||||
- 8
|
||||
+ 1
|
||||
|
||||
❯ tests/dsp.test.ts:23:61
|
||||
21| });
|
||||
22| it("여덟 환경은 고유 same-origin WAV이며 절차적 합성 매개변수를 갖지 않는다", () => {
|
||||
23| expect(new Set(ENVIRONMENTS.map(e => e.audioUrl)).size).toBe(8);
|
||||
| ^
|
||||
24| for (const environment of ENVIRONMENTS) {
|
||||
25| const url = new URL(environment.audioUrl, "http://localhost");
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯
|
||||
|
||||
FAIL tests/dsp.test.ts > 상대 dB와 결정론적 배경 합성 > 피크가 큰 녹음도 공통 감쇠로 합성 peak 0.8을 넘지 않고 SNR 비율을 보존한다
|
||||
TypeError: mixingGains is not a function
|
||||
❯ tests/dsp.test.ts:35:21
|
||||
33| const background = normalizeRms(new Float32Array([0.2, -0.2]), 0.0…
|
||||
34| for (const db of [-12, -6, 0, 6, 12]) {
|
||||
35| const gains = mixingGains(voice, background, voice, db);
|
||||
| ^
|
||||
36| expect(20 * Math.log10(gains.voice / gains.background)).toBeClos…
|
||||
37| expect(Math.max(...voice) * (gains.voice + gains.intro) + 0.03 *…
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 2 failed | 2 passed (4)
|
||||
Start at 07:59:47
|
||||
Duration 849ms (environment 78%, setup 14%, transform 5%, tests 2%, worker 1%, import 1%)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 1 passed (1)
|
||||
Tests 11 passed (11)
|
||||
Start at 08:01:57
|
||||
Duration 1.05s (environment 60%, tests 21%, setup 10%, transform 6%, import 1%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,272 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/audio.test.ts (11 tests | 9 failed) 139ms
|
||||
❯ 오디오 재생 수명과 믹서 (8)
|
||||
× intro와 목표 실제 fetch URL에 같은 명시적 cache-busting 버전을 붙인다 21ms
|
||||
× intro 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다 19ms
|
||||
× target 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다 20ms
|
||||
× 생성 시 무음이며 gesture의 play에서만 장치를 연다 13ms
|
||||
× 동시 시작을 거부하고 정지하면 모든 노드와 대기 Promise를 취소한다 14ms
|
||||
× HTTP·디코드·장치 실패를 전달하고 다음 시도는 다시 로드한다 3ms
|
||||
× 전체 음량은 두 신호의 비율을 보존하며 0부터 1 범위로 제한한다 9ms
|
||||
× 선택한 녹음을 디코드·루프하고 목표 종료에서 모든 소스와 fetch를 정리한다 11ms
|
||||
× 배경 404·디코드 실패는 한국어 복구 메시지이고 재시도로 성공한다 10ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 9 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > intro와 목표 실제 fetch URL에 같은 명시적 cache-busting 버전을 붙인다
|
||||
TypeError: Cannot read properties of undefined (reading 'onended')
|
||||
❯ tests/audio.test.ts:95:21
|
||||
93| const done = f.engine.play(question, true, vi.fn());
|
||||
94| await flush();
|
||||
95| f.sources.at(-1)!.onended?.();
|
||||
| ^
|
||||
96| await done;
|
||||
97| expect(f.fetcher.mock.calls.map(([url]) => url)).toEqual([
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/9]⎯
|
||||
|
||||
FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > intro 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다
|
||||
FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > target 404 후 intro·목표를 동일한 versioned URL로 다시 요청한다
|
||||
TypeError: Cannot read properties of undefined (reading 'onended')
|
||||
❯ tests/audio.test.ts:129:23
|
||||
127| const done = f.engine.play(question, true, vi.fn());
|
||||
128| await flush();
|
||||
129| f.sources.at(-1)!.onended?.();
|
||||
| ^
|
||||
130| await done;
|
||||
131| expect(f.fetcher.mock.calls.map(([url]) => url)).toEqual([
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/9]⎯
|
||||
|
||||
FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > 생성 시 무음이며 gesture의 play에서만 장치를 연다
|
||||
AssertionError: expected "vi.fn()" to be called once, but got 0 times
|
||||
❯ tests/audio.test.ts:150:21
|
||||
148| expect(f.context.resume).toHaveBeenCalledOnce();
|
||||
149| await flush();
|
||||
150| expect(started).toHaveBeenCalledOnce();
|
||||
| ^
|
||||
151| expect(f.sources).toHaveLength(3);
|
||||
152| expect(
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/9]⎯
|
||||
|
||||
FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > 동시 시작을 거부하고 정지하면 모든 노드와 대기 Promise를 취소한다
|
||||
AssertionError: expected TypeError: (0 , __vite_ssr_import_1__.syn… to match object { name: 'AbortError' }
|
||||
|
||||
- Expected
|
||||
+ Received
|
||||
|
||||
- {
|
||||
- "name": "AbortError",
|
||||
+ TypeError {
|
||||
+ "message": "(0 , __vite_ssr_import_1__.synthesizeBackground) is not a function",
|
||||
}
|
||||
|
||||
❯ tests/audio.test.ts:182:35
|
||||
180| const f = fixture();
|
||||
181| const done = f.engine.play(question, false, vi.fn());
|
||||
182| const cancelled = expect(done).rejects.toMatchObject({
|
||||
| ^
|
||||
183| name: "AbortError",
|
||||
184| });
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/9]⎯
|
||||
|
||||
FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > HTTP·디코드·장치 실패를 전달하고 다음 시도는 다시 로드한다
|
||||
AssertionError: expected [Function] to throw error including '해석' but got 'decode'
|
||||
|
||||
Expected: "해석"
|
||||
Received: "decode"
|
||||
|
||||
❯ tests/audio.test.ts:226:58
|
||||
224| );
|
||||
225| f.context.decodeAudioData.mockRejectedValueOnce(new Error("decode"…
|
||||
226| await expect(f.engine.play(question, false, vi.fn())).rejects.toTh…
|
||||
| ^
|
||||
227| "해석",
|
||||
228| );
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/9]⎯
|
||||
|
||||
FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > 전체 음량은 두 신호의 비율을 보존하며 0부터 1 범위로 제한한다
|
||||
TypeError: Cannot read properties of undefined (reading 'onended')
|
||||
❯ tests/audio.test.ts:248:21
|
||||
246| f.engine.setVolume(-1);
|
||||
247| expect(f.gains[0]!.gain.setTargetAtTime).toHaveBeenCalledWith(0, 2…
|
||||
248| f.sources.at(-1)!.onended?.();
|
||||
| ^
|
||||
249| await done;
|
||||
250| });
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/9]⎯
|
||||
|
||||
FAIL tests/audio.test.ts > 선택한 녹음을 디코드·루프하고 목표 종료에서 모든 소스와 fetch를 정리한다
|
||||
AssertionError: expected "vi.fn()" to be called with arguments: [ Array(2) ]
|
||||
|
||||
Received:
|
||||
|
||||
1st vi.fn() call:
|
||||
|
||||
[
|
||||
- "/ambience/street.wav?v=0.1.1",
|
||||
- ObjectContaining {
|
||||
- "signal": Any<AbortSignal>,
|
||||
+ "/audio/correction-market.wav?v=0.1.1",
|
||||
+ {
|
||||
+ "signal": AbortSignal {
|
||||
+ Symbol(kEvents): undefined,
|
||||
+ Symbol(events.maxEventTargetListeners): 0,
|
||||
+ Symbol(events.maxEventTargetListenersWarned): false,
|
||||
+ Symbol(kHandlers): undefined,
|
||||
+ Symbol(kAborted): true,
|
||||
+ Symbol(kReason): AbortError {
|
||||
+ "message": "This operation was aborted",
|
||||
+ },
|
||||
+ Symbol(kComposite): false,
|
||||
+ },
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
Number of calls: 1
|
||||
|
||||
❯ tests/audio.test.ts:258:21
|
||||
256| const done = f.engine.play(question, false, vi.fn());
|
||||
257| await flush();
|
||||
258| expect(f.fetcher).toHaveBeenCalledWith(question.environment.audioUrl…
|
||||
| ^
|
||||
259| expect(f.context.decodeAudioData).toHaveBeenCalledTimes(2);
|
||||
260| expect(f.sources[0]!.loop).toBe(true);
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/9]⎯
|
||||
|
||||
FAIL tests/audio.test.ts > 배경 404·디코드 실패는 한국어 복구 메시지이고 재시도로 성공한다
|
||||
AssertionError: expected [Function] to throw error matching /배경.*다시/ but got '(0 , __vite_ssr_import_1__.synthesize…'
|
||||
|
||||
- Expected:
|
||||
/배경.*다시/
|
||||
|
||||
+ Received:
|
||||
"(0 , __vite_ssr_import_1__.synthesizeBackground) is not a function"
|
||||
|
||||
❯ tests/audio.test.ts:272:56
|
||||
270| f.fetcher.mockImplementationOnce(async () => ({ ok: true, arrayBuffe…
|
||||
271| f.fetcher.mockResolvedValueOnce({ ok: false } as Response);
|
||||
272| await expect(f.engine.play(question, false, vi.fn())).rejects.toThro…
|
||||
| ^
|
||||
273| f.context.decodeAudioData.mockRejectedValueOnce(new Error("EncodingE…
|
||||
274| await expect(f.engine.play(question, false, vi.fn())).rejects.toThro…
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/9]⎯
|
||||
|
||||
⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯
|
||||
|
||||
Vitest caught 6 unhandled errors during the test run.
|
||||
This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected.
|
||||
|
||||
⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯
|
||||
TypeError: synthesizeBackground is not a function
|
||||
❯ src/audio/engine.ts:131:15
|
||||
129| background.copyToChannel(
|
||||
130| normalizeRms(
|
||||
131| synthesizeBackground(
|
||||
| ^
|
||||
132| question.environment,
|
||||
133| context.sampleRate,
|
||||
❯ process.processTicksAndRejections node:internal/process/task_queues:104:5
|
||||
|
||||
This error originated in "tests/audio.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running.
|
||||
The last test to run before this error was "로드 시간초과는 fetch를 취소하고 늦은 디코드가 소스를 만들지 않는다". This means either:
|
||||
- the error was thrown while Vitest was running this test, or
|
||||
- the error was thrown after the test completed, and this was the most recent test at that point.
|
||||
|
||||
⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯
|
||||
TypeError: synthesizeBackground is not a function
|
||||
❯ src/audio/engine.ts:131:15
|
||||
129| background.copyToChannel(
|
||||
130| normalizeRms(
|
||||
131| synthesizeBackground(
|
||||
| ^
|
||||
132| question.environment,
|
||||
133| context.sampleRate,
|
||||
❯ process.processTicksAndRejections node:internal/process/task_queues:104:5
|
||||
|
||||
This error originated in "tests/audio.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running.
|
||||
The last test to run before this error was "로드 시간초과는 fetch를 취소하고 늦은 디코드가 소스를 만들지 않는다". This means either:
|
||||
- the error was thrown while Vitest was running this test, or
|
||||
- the error was thrown after the test completed, and this was the most recent test at that point.
|
||||
|
||||
⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯
|
||||
TypeError: synthesizeBackground is not a function
|
||||
❯ src/audio/engine.ts:131:15
|
||||
129| background.copyToChannel(
|
||||
130| normalizeRms(
|
||||
131| synthesizeBackground(
|
||||
| ^
|
||||
132| question.environment,
|
||||
133| context.sampleRate,
|
||||
❯ process.processTicksAndRejections node:internal/process/task_queues:104:5
|
||||
|
||||
This error originated in "tests/audio.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running.
|
||||
The last test to run before this error was "로드 시간초과는 fetch를 취소하고 늦은 디코드가 소스를 만들지 않는다". This means either:
|
||||
- the error was thrown while Vitest was running this test, or
|
||||
- the error was thrown after the test completed, and this was the most recent test at that point.
|
||||
|
||||
⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯
|
||||
TypeError: synthesizeBackground is not a function
|
||||
❯ src/audio/engine.ts:131:15
|
||||
129| background.copyToChannel(
|
||||
130| normalizeRms(
|
||||
131| synthesizeBackground(
|
||||
| ^
|
||||
132| question.environment,
|
||||
133| context.sampleRate,
|
||||
❯ process.processTicksAndRejections node:internal/process/task_queues:104:5
|
||||
|
||||
This error originated in "tests/audio.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running.
|
||||
The last test to run before this error was "로드 시간초과는 fetch를 취소하고 늦은 디코드가 소스를 만들지 않는다". This means either:
|
||||
- the error was thrown while Vitest was running this test, or
|
||||
- the error was thrown after the test completed, and this was the most recent test at that point.
|
||||
|
||||
⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯
|
||||
TypeError: synthesizeBackground is not a function
|
||||
❯ src/audio/engine.ts:131:15
|
||||
129| background.copyToChannel(
|
||||
130| normalizeRms(
|
||||
131| synthesizeBackground(
|
||||
| ^
|
||||
132| question.environment,
|
||||
133| context.sampleRate,
|
||||
❯ process.processTicksAndRejections node:internal/process/task_queues:104:5
|
||||
|
||||
This error originated in "tests/audio.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running.
|
||||
The last test to run before this error was "로드 시간초과는 fetch를 취소하고 늦은 디코드가 소스를 만들지 않는다". This means either:
|
||||
- the error was thrown while Vitest was running this test, or
|
||||
- the error was thrown after the test completed, and this was the most recent test at that point.
|
||||
|
||||
⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯
|
||||
TypeError: synthesizeBackground is not a function
|
||||
❯ src/audio/engine.ts:131:15
|
||||
129| background.copyToChannel(
|
||||
130| normalizeRms(
|
||||
131| synthesizeBackground(
|
||||
| ^
|
||||
132| question.environment,
|
||||
133| context.sampleRate,
|
||||
❯ process.processTicksAndRejections node:internal/process/task_queues:104:5
|
||||
|
||||
This error originated in "tests/audio.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running.
|
||||
The last test to run before this error was "로드 시간초과는 fetch를 취소하고 늦은 디코드가 소스를 만들지 않는다". This means either:
|
||||
- the error was thrown while Vitest was running this test, or
|
||||
- the error was thrown after the test completed, and this was the most recent test at that point.
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 9 failed | 2 passed (11)
|
||||
Errors 6 errors
|
||||
Start at 08:00:38
|
||||
Duration 979ms (environment 65%, tests 16%, setup 11%, transform 6%, import 1%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/audio.test.ts (11 tests | 1 failed) 207ms
|
||||
❯ 오디오 재생 수명과 믹서 (8)
|
||||
× 생성 시 무음이며 gesture의 play에서만 장치를 연다 30ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/audio.test.ts > 오디오 재생 수명과 믹서 > 생성 시 무음이며 gesture의 play에서만 장치를 연다
|
||||
AssertionError: expected "vi.fn()" to be called with arguments: [ 1, Any<Number> ]
|
||||
|
||||
Received:
|
||||
|
||||
1st vi.fn() call:
|
||||
|
||||
[
|
||||
- 1,
|
||||
- Any<Number>,
|
||||
+ 0.834156648304508,
|
||||
+ 2.05,
|
||||
]
|
||||
|
||||
2nd vi.fn() call:
|
||||
|
||||
[
|
||||
- 1,
|
||||
- Any<Number>,
|
||||
+ 0,
|
||||
+ 2.05,
|
||||
]
|
||||
|
||||
3rd vi.fn() call:
|
||||
|
||||
[
|
||||
- 1,
|
||||
- Any<Number>,
|
||||
+ 0.834156648304508,
|
||||
+ 4.340000000000001,
|
||||
]
|
||||
|
||||
|
||||
Number of calls: 3
|
||||
|
||||
❯ tests/audio.test.ts:158:45
|
||||
156| ).toEqual(["/audio/intro.wav", `/audio/${question.id}.wav`, new UR…
|
||||
157| // master, 배경, 목표, 안내의 gain을 분리한다. 안내는 점차 소음에 묻힌다.
|
||||
158| expect(f.gains[1]!.gain.setValueAtTime).toHaveBeenCalledWith(
|
||||
| ^
|
||||
159| 1,
|
||||
160| expect.any(Number),
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 1 failed | 10 passed (11)
|
||||
Start at 08:01:14
|
||||
Duration 1.05s (environment 61%, tests 22%, setup 10%, transform 5%, import 1%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 1 passed (1)
|
||||
Tests 1 passed | 1 skipped (2)
|
||||
Start at 08:01:59
|
||||
Duration 305ms (setup 52%, tests 39%, transform 5%, worker 2%, import 1%)
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/generator.test.ts (2 tests | 1 failed | 1 skipped) 87ms
|
||||
× Node type stripping 경로에서 기존 101문장 원문을 읽을 수 있다 86ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/generator.test.ts > Node type stripping 경로에서 기존 101문장 원문을 읽을 수 있다
|
||||
AssertionError: node:internal/modules/esm/resolve:272
|
||||
throw new ERR_MODULE_NOT_FOUND(
|
||||
^
|
||||
|
||||
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/home/hermes/worktrees/find-word-v0.2.3/src/audio/assets' imported from /home/hermes/worktrees/find-word-v0.2.3/src/content.ts
|
||||
at finalizeResolution (node:internal/modules/esm/resolve:272:11)
|
||||
at moduleResolve (node:internal/modules/esm/resolve:879:10)
|
||||
at defaultResolve (node:internal/modules/esm/resolve:1006:11)
|
||||
at #cachedDefaultResolve (node:internal/modules/esm/loader:708:20)
|
||||
at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:728:38)
|
||||
at ModuleLoader.resolveSync (node:internal/modules/esm/loader:766:56)
|
||||
at #resolve (node:internal/modules/esm/loader:690:17)
|
||||
at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:610:35)
|
||||
at ModuleJob.syncLink (node:internal/modules/esm/module_job:277:33)
|
||||
at ModuleJob.link (node:internal/modules/esm/module_job:389:17) {
|
||||
code: 'ERR_MODULE_NOT_FOUND',
|
||||
url: 'file:///home/hermes/worktrees/find-word-v0.2.3/src/audio/assets'
|
||||
}
|
||||
|
||||
Node.js v26.7.0
|
||||
: expected 1 to be +0 // Object.is equality
|
||||
|
||||
- Expected
|
||||
+ Received
|
||||
|
||||
- 0
|
||||
+ 1
|
||||
|
||||
❯ tests/generator.test.ts:20:40
|
||||
18| const result = spawnSync("node", ["--experimental-strip-types", "--i…
|
||||
19| "import {INTRO,PATTERNS,WORDS} from './src/content.ts'; console.lo…
|
||||
20| expect(result.status, result.stderr).toBe(0);
|
||||
| ^
|
||||
21| expect(result.stdout.trim()).toBe("101");
|
||||
22| });
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 1 failed | 1 skipped (2)
|
||||
Start at 08:01:37
|
||||
Duration 340ms (setup 45%, tests 39%, transform 12%, worker 2%, import 1%)
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"files": 8,
|
||||
"bytes": 4608352
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 1 passed (1)
|
||||
Tests 1 passed (1)
|
||||
Start at 08:08:06
|
||||
Duration 482ms (tests 66%, setup 27%, transform 3%, import 2%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/ambience.test.ts (1 test | 1 failed) 10ms
|
||||
× 여덟 현장 녹음은 고유 PCM16 WAV·짧은 fade·완전한 provenance/notice를 가진다 8ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/ambience.test.ts > 여덟 현장 녹음은 고유 PCM16 WAV·짧은 fade·완전한 provenance/notice를 가진다
|
||||
Error: ENOENT: no such file or directory, open 'public/ambience/manifest.json'
|
||||
❯ tests/ambience.test.ts:9:31
|
||||
7| // 생성기 자기 보고 대신 배포 바이트의 형식·파형·권리 추적 정보를 독립 측정한다.
|
||||
8| it("여덟 현장 녹음은 고유 PCM16 WAV·짧은 fade·완전한 provenance/notice를 가진다", () => {
|
||||
9| const manifest = JSON.parse(readFileSync("public/ambience/manifest.j…
|
||||
| ^
|
||||
10| expect(manifest.version).toBe("0.2.3");
|
||||
11| expect(manifest.files.map((f: {environmentId: string}) => f.environm…
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 1 failed (1)
|
||||
Start at 08:02:57
|
||||
Duration 378ms (setup 63%, transform 25%, import 5%, tests 4%, worker 2%)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility)
|
||||
스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok
|
||||
test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing)
|
||||
무음을 정상 현장 녹음으로 포장하지 않는다. ... ok
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 2 tests in 1.134s
|
||||
|
||||
OK
|
||||
@@ -0,0 +1,21 @@
|
||||
test_ambience_audio (unittest.loader._FailedTest.test_ambience_audio) ... ERROR
|
||||
|
||||
======================================================================
|
||||
ERROR: test_ambience_audio (unittest.loader._FailedTest.test_ambience_audio)
|
||||
----------------------------------------------------------------------
|
||||
ImportError: Failed to import test module: test_ambience_audio
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/loader.py", line 419, in _find_test_path
|
||||
module = self._get_module_from_name(name)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/loader.py", line 362, in _get_module_from_name
|
||||
__import__(name)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 11, in <module>
|
||||
import ambience_audio as audio
|
||||
ModuleNotFoundError: No module named 'ambience_audio'
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 1 test in 0.000s
|
||||
|
||||
FAILED (errors=1)
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 2 passed (2)
|
||||
Tests 34 passed (34)
|
||||
Start at 08:04:49
|
||||
Duration 4.34s (tests 66%, environment 26%, setup 4%, transform 2%, import 1%)
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/game.test.ts (16 tests | 1 failed) 39ms
|
||||
× 재생 중 변경된 SNR은 재청취 전 답변의 청취 이력을 덮어쓰지 않는다 7ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/game.test.ts > 재생 중 변경된 SNR은 재청취 전 답변의 청취 이력을 덮어쓰지 않는다
|
||||
AssertionError: expected -10 to be 6 // Object.is equality
|
||||
|
||||
- Expected
|
||||
+ Received
|
||||
|
||||
- 6
|
||||
+ -10
|
||||
|
||||
❯ tests/game.test.ts:215:32
|
||||
213| state = gameReducer(state, { type: "ENDED" });
|
||||
214| state = gameReducer(state, { type: "ANSWER", input: state.questions[…
|
||||
215| expect(state.answers[0]!.db).toBe(6);
|
||||
| ^
|
||||
216| expect(state.questions[1]!.db).toBe(-10);
|
||||
217| });
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 1 failed | 15 passed (16)
|
||||
Start at 08:04:23
|
||||
Duration 904ms (environment 74%, setup 12%, transform 6%, tests 5%, import 1%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 5 passed (5)
|
||||
Tests 50 passed (50)
|
||||
Start at 08:07:17
|
||||
Duration 4.95s (tests 52%, environment 34%, setup 9%, transform 3%, import 1%)
|
||||
|
||||
Environment jsdom was created 5 times · 2.74s total, 34% of tracked time
|
||||
create it once per worker with pool: 'vmThreads' (keeps per-file isolation) or isolate: false (shares it across files)
|
||||
learn more: https://vitest.dev/guide/improving-performance#test-environments
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 2 passed (2)
|
||||
Tests 35 passed (35)
|
||||
Start at 08:07:59
|
||||
Duration 4.38s (tests 66%, environment 26%, setup 4%, transform 2%, import 1%)
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/game.test.ts (17 tests | 1 failed) 43ms
|
||||
× 순환 환경은 여러 라운드에서 여덟 장소 모두를 선택하고 라운드 내에는 중복되지 않는다 8ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/game.test.ts > 순환 환경은 여러 라운드에서 여덟 장소 모두를 선택하고 라운드 내에는 중복되지 않는다
|
||||
AssertionError: expected 3 to be 8 // Object.is equality
|
||||
|
||||
- Expected
|
||||
+ Received
|
||||
|
||||
- 8
|
||||
+ 3
|
||||
|
||||
❯ tests/game.test.ts:227:21
|
||||
225| questions.forEach(q => seen.add(q.environment.id));
|
||||
226| }
|
||||
227| expect(seen.size).toBe(8);
|
||||
| ^
|
||||
228| });
|
||||
229|
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 1 failed | 16 passed (17)
|
||||
Start at 08:07:35
|
||||
Duration 902ms (environment 74%, setup 13%, transform 6%, tests 5%, import 1%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 2 passed (2)
|
||||
Tests 26 passed (26)
|
||||
Start at 08:08:44
|
||||
Duration 4.72s (tests 85%, environment 9%, setup 3%, transform 2%, import 1%)
|
||||
|
||||
@@ -0,0 +1,596 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/App.test.tsx (19 tests | 1 failed | 18 skipped) 485ms
|
||||
× 환경음 저작자·라이선스 고지를 같은 출처 링크로 제공한다 483ms
|
||||
❯ tests/build.test.ts (7 tests | 4 failed | 3 skipped) 1387ms
|
||||
× 현장음 wav 손상은 빌드 실패로 처리한다 348ms
|
||||
× 현장음 manifest 손상은 빌드 실패로 처리한다 342ms
|
||||
× 현장음 notice 손상은 빌드 실패로 처리한다 371ms
|
||||
× 현장음 extra 손상은 빌드 실패로 처리한다 324ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 5 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/App.test.tsx > 환경음 저작자·라이선스 고지를 같은 출처 링크로 제공한다
|
||||
TestingLibraryElementError: Unable to find an accessible element with the role "link" and name "환경음 출처·라이선스"
|
||||
|
||||
Here are the accessible roles:
|
||||
|
||||
link:
|
||||
|
||||
Name "본문으로 건너뛰기":
|
||||
[36m<a[39m
|
||||
[33mclass[39m=[32m"skip-link"[39m
|
||||
[33mhref[39m=[32m"#main"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "플레이 방법":
|
||||
[36m<a[39m
|
||||
[33mhref[39m=[32m"#howto"[39m
|
||||
[36m/>[39m
|
||||
|
||||
--------------------------------------------------
|
||||
banner:
|
||||
|
||||
Name "":
|
||||
[36m<header[39m
|
||||
[33mclass[39m=[32m"header wrap"[39m
|
||||
[36m/>[39m
|
||||
|
||||
--------------------------------------------------
|
||||
heading:
|
||||
|
||||
Name "단어를 맞춰라":
|
||||
[36m<h1 />[39m
|
||||
|
||||
Name "소음 속 작은 단어,들리시나요?":
|
||||
[36m<h2[39m
|
||||
[33mid[39m=[32m"hero-title"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "나의 소리 탐험 준비":
|
||||
[36m<h2[39m
|
||||
[33mid[39m=[32m"setup-title"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "작은 단어를 발견하는 방법":
|
||||
[36m<h2[39m
|
||||
[33mid[39m=[32m"howto-title"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "먼저, 귀 기울이기":
|
||||
[36m<h3 />[39m
|
||||
|
||||
Name "기억한 단어 찾기":
|
||||
[36m<h3 />[39m
|
||||
|
||||
Name "나의 발견 돌아보기":
|
||||
[36m<h3 />[39m
|
||||
|
||||
--------------------------------------------------
|
||||
main:
|
||||
|
||||
Name "":
|
||||
[36m<main[39m
|
||||
[33mclass[39m=[32m"wrap"[39m
|
||||
[33mid[39m=[32m"main"[39m
|
||||
[33mtabindex[39m=[32m"-1"[39m
|
||||
[36m/>[39m
|
||||
|
||||
--------------------------------------------------
|
||||
region:
|
||||
|
||||
Name "소음 속 작은 단어,들리시나요?":
|
||||
[36m<section[39m
|
||||
[33maria-labelledby[39m=[32m"hero-title"[39m
|
||||
[33mclass[39m=[32m"hero"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "나의 소리 탐험 준비":
|
||||
[36m<section[39m
|
||||
[33maria-labelledby[39m=[32m"setup-title"[39m
|
||||
[33mclass[39m=[32m"setup-card"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "작은 단어를 발견하는 방법":
|
||||
[36m<section[39m
|
||||
[33maria-labelledby[39m=[32m"howto-title"[39m
|
||||
[33mclass[39m=[32m"howto"[39m
|
||||
[33mid[39m=[32m"howto"[39m
|
||||
[36m/>[39m
|
||||
|
||||
--------------------------------------------------
|
||||
paragraph:
|
||||
|
||||
Name "":
|
||||
[36m<p[39m
|
||||
[33mclass[39m=[32m"eyebrow"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "":
|
||||
[36m<p[39m
|
||||
[33mclass[39m=[32m"lead"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "":
|
||||
[36m<p />[39m
|
||||
|
||||
Name "":
|
||||
[36m<p />[39m
|
||||
|
||||
Name "":
|
||||
[36m<p[39m
|
||||
[33mid[39m=[32m"snr-help"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "":
|
||||
[36m<p />[39m
|
||||
|
||||
Name "":
|
||||
[36m<p />[39m
|
||||
|
||||
Name "":
|
||||
[36m<p />[39m
|
||||
|
||||
Name "":
|
||||
[36m<p />[39m
|
||||
|
||||
Name "":
|
||||
[36m<p />[39m
|
||||
|
||||
Name "":
|
||||
[36m<p />[39m
|
||||
|
||||
--------------------------------------------------
|
||||
emphasis:
|
||||
|
||||
Name "":
|
||||
[36m<em />[39m
|
||||
|
||||
--------------------------------------------------
|
||||
group:
|
||||
|
||||
Name "어떻게 답할까요?":
|
||||
[36m<fieldset[39m
|
||||
[33mclass[39m=[32m"mode-field"[39m
|
||||
[36m/>[39m
|
||||
|
||||
--------------------------------------------------
|
||||
radio:
|
||||
|
||||
Name "골고루 풀기":
|
||||
[36m<input[39m
|
||||
[33maria-label[39m=[32m"골고루 풀기"[39m
|
||||
[33mchecked[39m=[32m""[39m
|
||||
[33mname[39m=[32m"mode"[39m
|
||||
[33mtype[39m=[32m"radio"[39m
|
||||
[33mvalue[39m=[32m"mixed"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "보기에서 선택":
|
||||
[36m<input[39m
|
||||
[33maria-label[39m=[32m"보기에서 선택"[39m
|
||||
[33mname[39m=[32m"mode"[39m
|
||||
[33mtype[39m=[32m"radio"[39m
|
||||
[33mvalue[39m=[32m"choice"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "직접 입력":
|
||||
[36m<input[39m
|
||||
[33maria-label[39m=[32m"직접 입력"[39m
|
||||
[33mname[39m=[32m"mode"[39m
|
||||
[33mtype[39m=[32m"radio"[39m
|
||||
[33mvalue[39m=[32m"text"[39m
|
||||
[36m/>[39m
|
||||
|
||||
--------------------------------------------------
|
||||
strong:
|
||||
|
||||
Name "":
|
||||
[36m<strong />[39m
|
||||
|
||||
Name "":
|
||||
[36m<strong />[39m
|
||||
|
||||
Name "":
|
||||
[36m<strong />[39m
|
||||
|
||||
--------------------------------------------------
|
||||
combobox:
|
||||
|
||||
Name "배경 환경":
|
||||
[36m<select[39m
|
||||
[33mid[39m=[32m"environment"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "시작 난이도":
|
||||
[36m<select[39m
|
||||
[33mid[39m=[32m"starting-level"[39m
|
||||
[36m/>[39m
|
||||
|
||||
--------------------------------------------------
|
||||
option:
|
||||
|
||||
Name "여덟 가지 일상 속으로":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"rotate"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "길거리":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"street"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "쇼핑몰":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"mall"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "극장":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"theater"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "백화점":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"department"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "시장":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"market"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "지하철":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"subway"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "카페":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"cafe"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "비 오는 거리":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"rain"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "1단계 · 소리에 익숙해지기 · SNR +6 dB":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"1"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "2단계 · 귀 기울이기 · SNR +3 dB":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"2"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "3단계 · 소음 사이로 · SNR 0 dB":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"3"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "4단계 · 작은 단서 찾기 · SNR -3 dB":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"4"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "5단계 · 깊이 집중하기 · SNR -6 dB":
|
||||
[36m<option[39m
|
||||
[33mvalue[39m=[32m"5"[39m
|
||||
[36m/>[39m
|
||||
|
||||
--------------------------------------------------
|
||||
slider:
|
||||
|
||||
Name "목표 음성 SNR":
|
||||
[36m<input[39m
|
||||
[33maria-describedby[39m=[32m"snr-help"[39m
|
||||
[33mid[39m=[32m"snr"[39m
|
||||
[33mmax[39m=[32m"12"[39m
|
||||
[33mmin[39m=[32m"-12"[39m
|
||||
[33mstep[39m=[32m"1"[39m
|
||||
[33mtype[39m=[32m"range"[39m
|
||||
[33mvalue[39m=[32m"6"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "전체 음량":
|
||||
[36m<input[39m
|
||||
[33mid[39m=[32m"volume"[39m
|
||||
[33mmax[39m=[32m"100"[39m
|
||||
[33mmin[39m=[32m"0"[39m
|
||||
[33mtype[39m=[32m"range"[39m
|
||||
[33mvalue[39m=[32m"35"[39m
|
||||
[36m/>[39m
|
||||
|
||||
--------------------------------------------------
|
||||
status:
|
||||
|
||||
Name "":
|
||||
[36m<output[39m
|
||||
[33mfor[39m=[32m"snr"[39m
|
||||
[36m/>[39m
|
||||
|
||||
Name "":
|
||||
[36m<output[39m
|
||||
[33mfor[39m=[32m"volume"[39m
|
||||
[36m/>[39m
|
||||
|
||||
--------------------------------------------------
|
||||
button:
|
||||
|
||||
Name "게임 시작 · 소리 듣기":
|
||||
[36m<button[39m
|
||||
[33mclass[39m=[32m"primary"[39m
|
||||
[36m/>[39m
|
||||
|
||||
--------------------------------------------------
|
||||
article:
|
||||
|
||||
Name "":
|
||||
[36m<article />[39m
|
||||
|
||||
Name "":
|
||||
[36m<article />[39m
|
||||
|
||||
Name "":
|
||||
[36m<article />[39m
|
||||
|
||||
--------------------------------------------------
|
||||
contentinfo:
|
||||
|
||||
Name "":
|
||||
[36m<footer[39m
|
||||
[33mclass[39m=[32m"footer wrap"[39m
|
||||
[36m/>[39m
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Ignored nodes: comments, script, style
|
||||
[36m<body>[39m
|
||||
[36m<div>[39m
|
||||
[36m<a[39m
|
||||
[33mclass[39m=[32m"skip-link"[39m
|
||||
[33mhref[39m=[32m"#main"[39m
|
||||
[36m>[39m
|
||||
[0m본문으로 건너뛰기[0m
|
||||
[36m</a>[39m
|
||||
[36m<header[39m
|
||||
[33mclass[39m=[32m"header wrap"[39m
|
||||
[36m>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"brand"[39m
|
||||
[36m>[39m
|
||||
[36m<span[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[33mclass[39m=[32m"brand-mark"[39m
|
||||
[36m>[39m
|
||||
[36m<i />[39m
|
||||
[36m<i />[39m
|
||||
[36m<i />[39m
|
||||
[36m<i />[39m
|
||||
[36m</span>[39m
|
||||
[36m<h1>[39m
|
||||
[0m단어를 맞춰라[0m
|
||||
[36m</h1>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"version"[39m
|
||||
[36m>[39m
|
||||
[0mv0.2.3[0m
|
||||
[36m</span>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"header-actions"[39m
|
||||
[36m>[39m
|
||||
[36m<a[39m
|
||||
[33mhref[39m=[32m"#howto"[39m
|
||||
[36m>[39m
|
||||
[0m플레이 방법 [0m
|
||||
[36m<span[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[36m>[39m
|
||||
[0m↓[0m
|
||||
[36m</span>[39m
|
||||
[36m</a>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"little-dot"[39m
|
||||
[36m/>[39m
|
||||
[0m소리에 집중하는 시간[0m
|
||||
[36m</div>[39m
|
||||
[36m</header>[39m
|
||||
[36m<main[39m
|
||||
[33mclass[39m=[32m"wrap"[39m
|
||||
[33mid[39m=[32m"main"[39m
|
||||
[33mtabindex[39m=[32m"-1"[39m
|
||||
[36m>[39m
|
||||
[36m<section[39m
|
||||
[33maria-labelledby[39m=[32m"hero-title"[39m
|
||||
[33mclass[39m=[32m"hero"[39m
|
||||
[36m>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"hero-copy"[39m
|
||||
[36m>[39m
|
||||
[36m<p[39m
|
||||
[33mclass[39m=[32m"eyebrow"[39m
|
||||
[36m>[39m
|
||||
[36m<span />[39m
|
||||
[0m 귀를 기울이면, 발견하는 즐거움[0m
|
||||
[36m</p>[39m
|
||||
[36m<h2[39m
|
||||
[33mid[39m=[32m"hero-title"[39m
|
||||
[36m>[39m
|
||||
[0m소음 속 작은 단어,[0m
|
||||
[36m<br />[39m
|
||||
[36m<em>[39m
|
||||
[0m들리시나요?[0m
|
||||
[36m</em>[39m
|
||||
[36m</h2>[39m
|
||||
[36m<p[39m
|
||||
[33mclass[39m=[32m"lead"[39m
|
||||
[36m>[39m
|
||||
[0m도시의 소리 사이에 에스가 숨겨 둔 단어.[0m
|
||||
[36m<br />[39m
|
||||
[0m조금 더 귀 기울여, 오늘의 행운을 찾아보세요.[0m
|
||||
[36m</p>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"hero-meta"[39m
|
||||
[36m>[39m
|
||||
[36m<span>[39m
|
||||
[0m한 라운드 [0m
|
||||
[0m3[0m
|
||||
[0m개의 질문[0m
|
||||
[36m</span>[39m
|
||||
[36m<span>[39m
|
||||
[0m5단계 도전[0m
|
||||
[36m</span>[39m
|
||||
[36m<span>[39m
|
||||
[0m나만의 속도로[0m
|
||||
[36m</span>[39m
|
||||
[36m</div>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"sound-room"[39m
|
||||
[36m>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"room-top"[39m
|
||||
[36m>[39m
|
||||
[36m<span>[39m
|
||||
[36m<i />[39m
|
||||
[0m 에스의 사운드 룸[0m
|
||||
[36m</span>[39m
|
||||
[36m<span>[39m
|
||||
[0m8[0m
|
||||
[0m가지 환경[0m
|
||||
[36m</span>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"orbit orbit-one"[39m
|
||||
[36m/>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"orbit orbit-two"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[33mclass[39m=[32m"floating-note note-one"[39m
|
||||
[36m>[39m
|
||||
[0m♪[0m
|
||||
[36m</span>[39m
|
||||
[36m<span[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[33mclass[39m=[32m"floating-note note-two"[39m
|
||||
[36m>[39m
|
||||
[0m✳[0m
|
||||
[36m</span>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"speech-bubble"[39m
|
||||
[36m>[39m
|
||||
[0m행운의 단어를 찾아보거라![0m
|
||||
[36m</div>[39m
|
||||
[36m<div[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[33mclass[39m=[32m"mascot "[39m
|
||||
[36m>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"ear left"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"ear right"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"eye left"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"eye right"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"smile"[39m
|
||||
[36m/>[39m
|
||||
[36m<b>[39m
|
||||
[0mS[0m
|
||||
[36m</b>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"room-bottom"[39m
|
||||
[36m>[39m
|
||||
[36m<div[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[33mclass[39m=[32m"sound-wave "[39m
|
||||
[36m>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 10px; animation-delay: 0s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 33.799955450859244px; animation-delay: 0.05s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 16.132986448643948px; animation-delay: 0.1s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 32.219552375865575px; animation-delay: 0.15000000000000002s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 21.858720427326595px; animation-delay: 0.2s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 29.163690702963766px; animation-delay: 0.25s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 26.796992502245015px; animation-delay: 0.30000000000000004s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 24.835290693688798px; animation-delay: 0.35000000000000003s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 30.619883556555898px; animation-delay: 0.4s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 35.39139668035928px; animation-delay: 0.45s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 71.52943948029164px; animation-delay: 0.5s;"[39m
|
||||
[36m/>[39m
|
||||
[36m<i[39m
|
||||
[33mstyle[39m=[32m"height: 19.53593765210872px...
|
||||
❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19
|
||||
❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38
|
||||
❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17
|
||||
❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19
|
||||
❯ tests/App.test.tsx:420:17
|
||||
418| it("환경음 저작자·라이선스 고지를 같은 출처 링크로 제공한다", () => {
|
||||
419| fixture();
|
||||
420| expect(screen.getByRole("link", { name: "환경음 출처·라이선스" })).toHaveAttr…
|
||||
| ^
|
||||
421| });
|
||||
422|
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/5]⎯
|
||||
|
||||
FAIL tests/build.test.ts > 현장음 wav 손상은 빌드 실패로 처리한다
|
||||
FAIL tests/build.test.ts > 현장음 manifest 손상은 빌드 실패로 처리한다
|
||||
FAIL tests/build.test.ts > 현장음 notice 손상은 빌드 실패로 처리한다
|
||||
FAIL tests/build.test.ts > 현장음 extra 손상은 빌드 실패로 처리한다
|
||||
AssertionError: expected [Function verify] to throw an error
|
||||
|
||||
- Expected:
|
||||
null
|
||||
|
||||
+ Received:
|
||||
undefined
|
||||
|
||||
❯ tests/build.test.ts:76:20
|
||||
74| if (damage === "notice") rmSync(join(temporary, "AMBIENCE_NOTICES.…
|
||||
75| if (damage === "extra") writeFileSync(join(temporary, "ambience/or…
|
||||
76| expect(verify).toThrow(/현장음/);
|
||||
| ^
|
||||
77| } finally { rmSync(temporary, {recursive: true, force: true}); }
|
||||
78| });
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/5]⎯
|
||||
|
||||
|
||||
Test Files 2 failed (2)
|
||||
Tests 5 failed | 21 skipped (26)
|
||||
Start at 08:08:41
|
||||
Duration 1.71s (tests 64%, environment 23%, setup 8%, transform 3%, import 2%)
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
> find-word@0.2.3 build
|
||||
> tsc --noEmit && vite build && node scripts/check-build.mjs
|
||||
|
||||
vite v8.3.4 building client environment for production...
|
||||
transforming...
|
||||
✓ 21 modules transformed.
|
||||
rendering chunks...
|
||||
computing gzip size...
|
||||
dist/index.html 0.89 kB │ gzip: 0.63 kB
|
||||
dist/assets/index-KT6VDfPn.css 15.25 kB │ gzip: 4.39 kB
|
||||
dist/assets/index-3VUCfIq1.js 247.59 kB │ gzip: 77.91 kB
|
||||
|
||||
✓ built in 178ms
|
||||
빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
> find-word@0.2.3 lint
|
||||
> eslint . && tsc --noEmit
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
|
||||
> find-word@0.2.3 lint
|
||||
> eslint . && tsc --noEmit
|
||||
|
||||
src/App.tsx(249,54): error TS2367: This comparison appears to be unintentional because the types '"ready" | "loading" | "playing" | "answer" | "feedback"' and '"results"' have no overlap.
|
||||
src/App.tsx(250,16): error TS2367: This comparison appears to be unintentional because the types '"ready" | "loading" | "playing" | "answer" | "feedback"' and '"results"' have no overlap.
|
||||
tests/audio.test.ts(284,95): error TS2352: Conversion of type '(value: { duration: number; length: number; sampleRate: number; numberOfChannels: number; getChannelData: () => Float32Array<ArrayBuffer>; copyToChannel: Mock<(samples: Float32Array<...>) => void>; } | PromiseLike<...>) => void' to type '(buffer: AudioBuffer) => void' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
|
||||
Types of parameters 'value' and 'buffer' are incompatible.
|
||||
Type 'AudioBuffer' is not comparable to type '{ duration: number; length: number; sampleRate: number; numberOfChannels: number; getChannelData: () => Float32Array<ArrayBuffer>; copyToChannel: Mock<(samples: Float32Array<ArrayBufferLike>) => void>; } | PromiseLike<...>'.
|
||||
Type 'AudioBuffer' is not comparable to type '{ duration: number; length: number; sampleRate: number; numberOfChannels: number; getChannelData: () => Float32Array<ArrayBuffer>; copyToChannel: Mock<(samples: Float32Array) => void>; }'.
|
||||
Types of property 'getChannelData' are incompatible.
|
||||
Type '(channel: number) => Float32Array<ArrayBuffer>' is not comparable to type '() => Float32Array<ArrayBuffer>'.
|
||||
Target signature provides too few arguments. Expected 1 or more, but got 0.
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
> find-word@0.2.3 test:browser
|
||||
> playwright test tests/browser/release.spec.ts
|
||||
|
||||
[WebServer] (node:810785) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
Running 4 tests using 2 workers
|
||||
|
||||
(node:810805) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:810806) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 2 [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (76ms)
|
||||
✓ 1 [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (582ms)
|
||||
(node:810893) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:810963) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 3 [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (589ms)
|
||||
✓ 4 [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (75ms)
|
||||
|
||||
4 passed (2.8s)
|
||||
@@ -0,0 +1,79 @@
|
||||
|
||||
> find-word@0.2.3 test:browser
|
||||
> playwright test tests/browser/release.spec.ts
|
||||
|
||||
[WebServer] (node:810330) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
Running 4 tests using 2 workers
|
||||
|
||||
(node:810350) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:810351) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✘ 2 [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (65ms)
|
||||
✓ 1 [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (571ms)
|
||||
(node:810452) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:810501) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 3 [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (607ms)
|
||||
✘ 4 [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (64ms)
|
||||
|
||||
|
||||
1) [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다
|
||||
|
||||
Error: expect(received).toBe(expected) // Object.is equality
|
||||
|
||||
Expected: 404
|
||||
Received: 200
|
||||
|
||||
25 | for (const directory of ["audio", "ambience"]) {
|
||||
26 | const response = await request.get(`/${directory}/not-found.wav?v=0.2.3`, { headers: { Accept: "text/html" } });
|
||||
> 27 | expect(response.status()).toBe(404);
|
||||
| ^
|
||||
28 | expect(await response.text()).not.toContain('<div id="root">');
|
||||
29 | }
|
||||
30 | const notice = await request.get("/AMBIENCE_NOTICES.md");
|
||||
at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/release.spec.ts:27:31
|
||||
|
||||
Error Context: test-results/release-누락-음성·환경음은-query와-HTML-accept에도-404이고-출처-고지는-번들된다-desktop/error-context.md
|
||||
|
||||
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
|
||||
test-results/release-누락-음성·환경음은-query와-HTML-accept에도-404이고-출처-고지는-번들된다-desktop/trace.zip
|
||||
Usage:
|
||||
|
||||
npx playwright show-trace test-results/release-누락-음성·환경음은-query와-HTML-accept에도-404이고-출처-고지는-번들된다-desktop/trace.zip
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
2) [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다
|
||||
|
||||
Error: expect(received).toBe(expected) // Object.is equality
|
||||
|
||||
Expected: 404
|
||||
Received: 200
|
||||
|
||||
25 | for (const directory of ["audio", "ambience"]) {
|
||||
26 | const response = await request.get(`/${directory}/not-found.wav?v=0.2.3`, { headers: { Accept: "text/html" } });
|
||||
> 27 | expect(response.status()).toBe(404);
|
||||
| ^
|
||||
28 | expect(await response.text()).not.toContain('<div id="root">');
|
||||
29 | }
|
||||
30 | const notice = await request.get("/AMBIENCE_NOTICES.md");
|
||||
at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/release.spec.ts:27:31
|
||||
|
||||
Error Context: test-results/release-누락-음성·환경음은-query와-HTML-accept에도-404이고-출처-고지는-번들된다-mobile/error-context.md
|
||||
|
||||
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
|
||||
test-results/release-누락-음성·환경음은-query와-HTML-accept에도-404이고-출처-고지는-번들된다-mobile/trace.zip
|
||||
Usage:
|
||||
|
||||
npx playwright show-trace test-results/release-누락-음성·환경음은-query와-HTML-accept에도-404이고-출처-고지는-번들된다-mobile/trace.zip
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
2 failed
|
||||
[desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다
|
||||
[mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다
|
||||
2 passed (2.9s)
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
> find-word@0.2.3 test:browser
|
||||
> playwright test
|
||||
|
||||
[WebServer] (node:811225) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
Running 24 tests using 2 workers
|
||||
|
||||
(node:811278) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:811277) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 1 [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 (18.5s)
|
||||
✓ 3 [desktop] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (12.6s)
|
||||
✓ 2 [desktop] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 (40.4s)
|
||||
✓ 5 [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (454ms)
|
||||
✓ 6 [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (28ms)
|
||||
✓ 4 [desktop] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (17.1s)
|
||||
✓ 8 [desktop] › tests/browser/rounds.spec.ts:84:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 (8.0s)
|
||||
✓ 9 [desktop] › tests/browser/rounds.spec.ts:112:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 (16.2s)
|
||||
✓ 10 [desktop] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 (1.6s)
|
||||
✓ 11 [desktop] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 (1.1s)
|
||||
✓ 12 [desktop] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 (17.5s)
|
||||
(node:812211) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 7 [desktop] › tests/browser/rounds.spec.ts:29:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 (1.1m)
|
||||
(node:812418) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 13 [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 (16.1s)
|
||||
✓ 15 [mobile] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (17.2s)
|
||||
✓ 16 [mobile] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (12.6s)
|
||||
✓ 17 [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (306ms)
|
||||
✓ 18 [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (20ms)
|
||||
✓ 14 [mobile] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 (37.7s)
|
||||
✓ 20 [mobile] › tests/browser/rounds.spec.ts:84:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 (6.1s)
|
||||
✓ 21 [mobile] › tests/browser/rounds.spec.ts:112:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 (16.0s)
|
||||
✓ 22 [mobile] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 (834ms)
|
||||
✓ 23 [mobile] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 (637ms)
|
||||
✓ 24 [mobile] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 (17.0s)
|
||||
✓ 19 [mobile] › tests/browser/rounds.spec.ts:29:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 (57.4s)
|
||||
|
||||
24 passed (3.4m)
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
> find-word@0.2.3 test
|
||||
> vitest run
|
||||
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 13 passed (13)
|
||||
Tests 91 passed (91)
|
||||
Start at 08:12:39
|
||||
Duration 16.80s (tests 76%, environment 16%, setup 6%, transform 1%, import 1%)
|
||||
|
||||
Isolate 13 workers spawned · ~782ms startup each (spawn + environment, per file)
|
||||
at least ~2.61s faster with isolate: false — reuses workers across files instead of one per file
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"auditReportVersion": 2,
|
||||
"vulnerabilities": {},
|
||||
"metadata": {
|
||||
"vulnerabilities": {
|
||||
"info": 0,
|
||||
"low": 0,
|
||||
"moderate": 0,
|
||||
"high": 0,
|
||||
"critical": 0,
|
||||
"total": 0
|
||||
},
|
||||
"dependencies": {
|
||||
"prod": 4,
|
||||
"dev": 260,
|
||||
"optional": 27,
|
||||
"peer": 8,
|
||||
"peerOptional": 0,
|
||||
"total": 263
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 1 passed (1)
|
||||
Tests 1 passed | 19 skipped (20)
|
||||
Start at 08:13:17
|
||||
Duration 1.81s (environment 53%, tests 25%, transform 9%, setup 9%, import 4%)
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/App.test.tsx (20 tests | 1 failed | 19 skipped) 451ms
|
||||
× 결과 헤더에 존재하지 않는 플레이 방법 앵커를 표시하지 않는다 449ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/App.test.tsx > 결과 헤더에 존재하지 않는 플레이 방법 앵커를 표시하지 않는다
|
||||
Error: expect(element).not.toBeInTheDocument()
|
||||
|
||||
expected document not to contain element, found <a
|
||||
href="#howto"
|
||||
>
|
||||
플레이 방법
|
||||
<span
|
||||
aria-hidden="true"
|
||||
>
|
||||
↓
|
||||
</span>
|
||||
</a> instead
|
||||
❯ tests/App.test.tsx:427:60
|
||||
425| await f.user.click(screen.getByRole("button", {name: "게임 시작 · 소리 듣기"…
|
||||
426| await f.user.click(screen.getByRole("button", {name: "문제 풀이 종료"}));
|
||||
427| expect(screen.queryByRole("link", {name: "플레이 방법"})).not.toBeInTheDo…
|
||||
| ^
|
||||
428| await f.finish();
|
||||
429| });
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 1 failed | 19 skipped (20)
|
||||
Start at 08:13:14
|
||||
Duration 1.88s (environment 54%, tests 28%, setup 8%, transform 6%, import 4%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
> find-word@0.2.3 build
|
||||
> tsc --noEmit && vite build && node scripts/check-build.mjs
|
||||
|
||||
vite v8.3.4 building client environment for production...
|
||||
transforming...
|
||||
✓ 21 modules transformed.
|
||||
rendering chunks...
|
||||
computing gzip size...
|
||||
dist/index.html 0.89 kB │ gzip: 0.63 kB
|
||||
dist/assets/index-ouf4Br0q.css 16.03 kB │ gzip: 4.51 kB
|
||||
dist/assets/index-GPW5SsSV.js 247.60 kB │ gzip: 77.92 kB
|
||||
|
||||
✓ built in 187ms
|
||||
빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
> find-word@0.2.3 test:browser
|
||||
> playwright test tests/browser/ui.spec.ts -g 시작 단계와 SNR 설정
|
||||
|
||||
[WebServer] (node:813432) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
Running 2 tests using 2 workers
|
||||
|
||||
(node:813452) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:813453) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 1 [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (780ms)
|
||||
✓ 2 [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (765ms)
|
||||
|
||||
2 passed (2.2s)
|
||||
@@ -0,0 +1,72 @@
|
||||
|
||||
> find-word@0.2.3 test:browser
|
||||
> playwright test tests/browser/ui.spec.ts -g 시작 단계와 SNR 설정
|
||||
|
||||
[WebServer] (node:813040) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
Running 2 tests using 2 workers
|
||||
|
||||
(node:813061) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:813062) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✘ 1 [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (798ms)
|
||||
✘ 2 [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (795ms)
|
||||
|
||||
|
||||
1) [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 ────────────
|
||||
|
||||
Error: expect(received).toBeGreaterThanOrEqual(expected)
|
||||
|
||||
Expected: >= 44
|
||||
Received: 23
|
||||
|
||||
131 | ]) {
|
||||
132 | const bounds = (await control.boundingBox())!;
|
||||
> 133 | expect(bounds.height).toBeGreaterThanOrEqual(44);
|
||||
| ^
|
||||
134 | expect(bounds.x).toBeGreaterThanOrEqual(panel.x);
|
||||
135 | expect(bounds.x + bounds.width).toBeLessThanOrEqual(panel.x + panel.width);
|
||||
136 | }
|
||||
at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/ui.spec.ts:133:27
|
||||
|
||||
Error Context: test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-desktop/error-context.md
|
||||
|
||||
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
|
||||
test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-desktop/trace.zip
|
||||
Usage:
|
||||
|
||||
npx playwright show-trace test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-desktop/trace.zip
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
2) [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 ─────────────
|
||||
|
||||
Error: expect(received).toBeGreaterThanOrEqual(expected)
|
||||
|
||||
Expected: >= 44
|
||||
Received: 23
|
||||
|
||||
131 | ]) {
|
||||
132 | const bounds = (await control.boundingBox())!;
|
||||
> 133 | expect(bounds.height).toBeGreaterThanOrEqual(44);
|
||||
| ^
|
||||
134 | expect(bounds.x).toBeGreaterThanOrEqual(panel.x);
|
||||
135 | expect(bounds.x + bounds.width).toBeLessThanOrEqual(panel.x + panel.width);
|
||||
136 | }
|
||||
at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/ui.spec.ts:133:27
|
||||
|
||||
Error Context: test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-mobile/error-context.md
|
||||
|
||||
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
|
||||
test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-mobile/trace.zip
|
||||
Usage:
|
||||
|
||||
npx playwright show-trace test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-mobile/trace.zip
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
2 failed
|
||||
[desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 ─────────────
|
||||
[mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 ──────────────
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 1 passed (1)
|
||||
Tests 1 passed | 20 skipped (21)
|
||||
Start at 08:17:35
|
||||
Duration 1.21s (environment 51%, tests 27%, setup 9%, transform 8%, import 4%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,329 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/App.test.tsx (21 tests | 1 failed | 20 skipped) 303ms
|
||||
× 세 문항 라운드에서 가능한 연속 정답 보너스 상한을 설명한다 301ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/App.test.tsx > 세 문항 라운드에서 가능한 연속 정답 보너스 상한을 설명한다
|
||||
TestingLibraryElementError: Unable to find an element with the text: 단계 × 100점 + 연속 정답 보너스 (라운드 내 최대 20점). This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
|
||||
|
||||
Ignored nodes: comments, script, style
|
||||
[36m<body>[39m
|
||||
[36m<div>[39m
|
||||
[36m<a[39m
|
||||
[33mclass[39m=[32m"skip-link"[39m
|
||||
[33mhref[39m=[32m"#main"[39m
|
||||
[36m>[39m
|
||||
[0m본문으로 건너뛰기[0m
|
||||
[36m</a>[39m
|
||||
[36m<header[39m
|
||||
[33mclass[39m=[32m"header wrap"[39m
|
||||
[36m>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"brand"[39m
|
||||
[36m>[39m
|
||||
[36m<span[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[33mclass[39m=[32m"brand-mark"[39m
|
||||
[36m>[39m
|
||||
[36m<i />[39m
|
||||
[36m<i />[39m
|
||||
[36m<i />[39m
|
||||
[36m<i />[39m
|
||||
[36m</span>[39m
|
||||
[36m<h1>[39m
|
||||
[0m단어를 맞춰라[0m
|
||||
[36m</h1>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"version"[39m
|
||||
[36m>[39m
|
||||
[0mv0.2.3[0m
|
||||
[36m</span>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"header-actions"[39m
|
||||
[36m>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"little-dot"[39m
|
||||
[36m/>[39m
|
||||
[0m소리에 집중하는 시간[0m
|
||||
[36m</div>[39m
|
||||
[36m</header>[39m
|
||||
[36m<main[39m
|
||||
[33mclass[39m=[32m"wrap"[39m
|
||||
[33mid[39m=[32m"main"[39m
|
||||
[33mtabindex[39m=[32m"-1"[39m
|
||||
[36m>[39m
|
||||
[36m<section[39m
|
||||
[33mclass[39m=[32m"results-panel panel"[39m
|
||||
[36m>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"eyebrow"[39m
|
||||
[36m>[39m
|
||||
[0m지금까지의 소리 탐험[0m
|
||||
[36m</span>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"result-mascot"[39m
|
||||
[36m>[39m
|
||||
[36m<div[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[33mclass[39m=[32m"mascot small"[39m
|
||||
[36m>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"ear left"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"ear right"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"eye left"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"eye right"[39m
|
||||
[36m/>[39m
|
||||
[36m<span[39m
|
||||
[33mclass[39m=[32m"smile"[39m
|
||||
[36m/>[39m
|
||||
[36m<b>[39m
|
||||
[0mS[0m
|
||||
[36m</b>[39m
|
||||
[36m</div>[39m
|
||||
[36m</div>[39m
|
||||
[36m<h2[39m
|
||||
[33mtabindex[39m=[32m"-1"[39m
|
||||
[36m>[39m
|
||||
[0m문제 풀이를 종료했어요.[0m
|
||||
[36m</h2>[39m
|
||||
[36m<p[39m
|
||||
[33mclass[39m=[32m"muted"[39m
|
||||
[36m>[39m
|
||||
[0m작은 소리에 집중한 당신, 다음 탐험에서도 만나요.[0m
|
||||
[36m</p>[39m
|
||||
[36m<p>[39m
|
||||
[0m응답 [0m
|
||||
[0m0[0m
|
||||
[0m문항 · 정답 [0m
|
||||
[0m0[0m
|
||||
[0m문항[0m
|
||||
[36m</p>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"stats"[39m
|
||||
[36m>[39m
|
||||
[36m<div>[39m
|
||||
[36m<strong>[39m
|
||||
[0m0[0m
|
||||
[36m</strong>[39m
|
||||
[36m<span>[39m
|
||||
[0m총 점수[0m
|
||||
[36m</span>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div>[39m
|
||||
[36m<strong>[39m
|
||||
[0m0[0m
|
||||
[0m%[0m
|
||||
[36m</strong>[39m
|
||||
[36m<span>[39m
|
||||
[0m정답률 · [0m
|
||||
[0m0[0m
|
||||
[0m/[0m
|
||||
[0m0[0m
|
||||
[36m</span>[39m
|
||||
[36m</div>[39m
|
||||
[36m<div>[39m
|
||||
[36m<strong>[39m
|
||||
[0m0[0m
|
||||
[36m<small>[39m
|
||||
[0m회[0m
|
||||
[36m</small>[39m
|
||||
[36m</strong>[39m
|
||||
[36m<span>[39m
|
||||
[0m최고 연속 정답[0m
|
||||
[36m</span>[39m
|
||||
[36m</div>[39m
|
||||
[36m</div>[39m
|
||||
[36m<table[39m
|
||||
[33maria-label[39m=[32m"난이도별 결과"[39m
|
||||
[36m>[39m
|
||||
[36m<thead>[39m
|
||||
[36m<tr>[39m
|
||||
[36m<th[39m
|
||||
[33mscope[39m=[32m"col"[39m
|
||||
[36m>[39m
|
||||
[0m난이도[0m
|
||||
[36m</th>[39m
|
||||
[36m<th[39m
|
||||
[33mscope[39m=[32m"col"[39m
|
||||
[36m>[39m
|
||||
[0mSNR[0m
|
||||
[36m</th>[39m
|
||||
[36m<th[39m
|
||||
[33mscope[39m=[32m"col"[39m
|
||||
[36m>[39m
|
||||
[0m맞힌 문제[0m
|
||||
[36m</th>[39m
|
||||
[36m</tr>[39m
|
||||
[36m</thead>[39m
|
||||
[36m<tbody>[39m
|
||||
[36m<tr>[39m
|
||||
[36m<th[39m
|
||||
[33mscope[39m=[32m"row"[39m
|
||||
[36m>[39m
|
||||
[0m1[0m
|
||||
[0m단계[0m
|
||||
[36m</th>[39m
|
||||
[36m<td>[39m
|
||||
[0mSNR +6 dB[0m
|
||||
[36m</td>[39m
|
||||
[36m<td>[39m
|
||||
[0m0[0m
|
||||
[0m / [0m
|
||||
[0m0[0m
|
||||
[36m</td>[39m
|
||||
[36m</tr>[39m
|
||||
[36m<tr>[39m
|
||||
[36m<th[39m
|
||||
[33mscope[39m=[32m"row"[39m
|
||||
[36m>[39m
|
||||
[0m2[0m
|
||||
[0m단계[0m
|
||||
[36m</th>[39m
|
||||
[36m<td>[39m
|
||||
[0mSNR +3 dB[0m
|
||||
[36m</td>[39m
|
||||
[36m<td>[39m
|
||||
[0m0[0m
|
||||
[0m / [0m
|
||||
[0m0[0m
|
||||
[36m</td>[39m
|
||||
[36m</tr>[39m
|
||||
[36m<tr>[39m
|
||||
[36m<th[39m
|
||||
[33mscope[39m=[32m"row"[39m
|
||||
[36m>[39m
|
||||
[0m3[0m
|
||||
[0m단계[0m
|
||||
[36m</th>[39m
|
||||
[36m<td>[39m
|
||||
[0mSNR 0 dB[0m
|
||||
[36m</td>[39m
|
||||
[36m<td>[39m
|
||||
[0m0[0m
|
||||
[0m / [0m
|
||||
[0m0[0m
|
||||
[36m</td>[39m
|
||||
[36m</tr>[39m
|
||||
[36m<tr>[39m
|
||||
[36m<th[39m
|
||||
[33mscope[39m=[32m"row"[39m
|
||||
[36m>[39m
|
||||
[0m4[0m
|
||||
[0m단계[0m
|
||||
[36m</th>[39m
|
||||
[36m<td>[39m
|
||||
[0mSNR -3 dB[0m
|
||||
[36m</td>[39m
|
||||
[36m<td>[39m
|
||||
[0m0[0m
|
||||
[0m / [0m
|
||||
[0m0[0m
|
||||
[36m</td>[39m
|
||||
[36m</tr>[39m
|
||||
[36m<tr>[39m
|
||||
[36m<th[39m
|
||||
[33mscope[39m=[32m"row"[39m
|
||||
[36m>[39m
|
||||
[0m5[0m
|
||||
[0m단계[0m
|
||||
[36m</th>[39m
|
||||
[36m<td>[39m
|
||||
[0mSNR -6 dB[0m
|
||||
[36m</td>[39m
|
||||
[36m<td>[39m
|
||||
[0m0[0m
|
||||
[0m / [0m
|
||||
[0m0[0m
|
||||
[36m</td>[39m
|
||||
[36m</tr>[39m
|
||||
[36m</tbody>[39m
|
||||
[36m</table>[39m
|
||||
[36m<p[39m
|
||||
[33mclass[39m=[32m"muted"[39m
|
||||
[36m>[39m
|
||||
[0m단계 × 100점 + 연속 정답 보너스 (최대 40점)[0m
|
||||
[36m</p>[39m
|
||||
[36m<button[39m
|
||||
[33mclass[39m=[32m"secondary"[39m
|
||||
[36m>[39m
|
||||
[0m처음 화면으로[0m
|
||||
[36m</button>[39m
|
||||
[36m</section>[39m
|
||||
[36m<div[39m
|
||||
[33mclass[39m=[32m"volume-row"[39m
|
||||
[36m>[39m
|
||||
[36m<label[39m
|
||||
[33mfor[39m=[32m"volume"[39m
|
||||
[36m>[39m
|
||||
[36m<span[39m
|
||||
[33maria-hidden[39m=[32m"true"[39m
|
||||
[36m>[39m
|
||||
[0m◖))[0m
|
||||
[36m</span>[39m
|
||||
[0m 전체 음량[0m
|
||||
[36m</label>[39m
|
||||
[36m<input[39m
|
||||
[33mid[39m=[32m"volume"[39m
|
||||
[33mmax[39m=[32m"100"[39m
|
||||
[33mmin[39m=[32m"0"[39m
|
||||
[33mtype[39m=[32m"range"[39m
|
||||
[33mvalue[39m=[32m"35"[39m
|
||||
[36m/>[39m
|
||||
[36m<output[39m
|
||||
[33mfor[39m=[32m"volume"[39m
|
||||
[36m>[39m
|
||||
[0m35[0m
|
||||
[0m%[0m
|
||||
[36m</output>[39m
|
||||
[36m</div>[39m
|
||||
[36m</main>[39m
|
||||
[36m<footer[39m
|
||||
[33mclass[39m=[32m"footer wrap"[39m
|
||||
[36m>[39m
|
||||
[36m<p>[39m
|
||||
[0mDesigned by OZ at Heat-T Medical Inc.[0m
|
||||
[36m</p>[39m
|
||||
[36m<p>[39m
|
||||
[0m청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다.[0m
|
||||
[36m</p>[39m
|
||||
[36m<span>[39m
|
||||
[0m개인정보 수집 없이, 오직 플레이만.[0m
|
||||
[36m</span>[39m
|
||||
[36m<a[39m
|
||||
[33mhref[39m=[32m"/AMBIENCE_NOTICES.md"[39m
|
||||
[36m>[39m
|
||||
[0m환경음 출처·라이선스[0m
|
||||
[36m</a>[39m
|
||||
[36m</footer>[39m
|
||||
[36m</div>[39m
|
||||
[36m</body>[39m
|
||||
❯ Object.getElementError node_modules/@testing-library/dom/dist/config.js:37:19
|
||||
❯ node_modules/@testing-library/dom/dist/query-helpers.js:76:38
|
||||
❯ node_modules/@testing-library/dom/dist/query-helpers.js:52:17
|
||||
❯ node_modules/@testing-library/dom/dist/query-helpers.js:95:19
|
||||
❯ tests/App.test.tsx:504:17
|
||||
502| await f.user.click(screen.getByRole("button", {name: "게임 시작 · 소리 듣기"…
|
||||
503| await f.user.click(screen.getByRole("button", {name: "문제 풀이 종료"}));
|
||||
504| expect(screen.getByText("단계 × 100점 + 연속 정답 보너스 (라운드 내 최대 20점)")).toB…
|
||||
| ^
|
||||
505| await f.finish();
|
||||
506| });
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 1 failed | 20 skipped (21)
|
||||
Start at 08:17:33
|
||||
Duration 1.26s (environment 49%, tests 27%, transform 12%, setup 8%, import 4%, worker 1%)
|
||||
|
||||
@@ -0,0 +1,191 @@
|
||||
|
||||
> find-word@0.2.3 test:browser
|
||||
> playwright test --reporter=list,json
|
||||
|
||||
[WebServer] (node:814103) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
Running 26 tests using 2 workers
|
||||
|
||||
(node:814172) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:814173) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✘ 1 [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 (26.1s)
|
||||
(node:814746) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 3 [desktop] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (17.3s)
|
||||
✓ 2 [desktop] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 (48.0s)
|
||||
✓ 5 [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (420ms)
|
||||
✓ 6 [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (29ms)
|
||||
✓ 4 [desktop] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (16.9s)
|
||||
✘ 8 [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 (9.2s)
|
||||
(node:815064) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 9 [desktop] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 (17.3s)
|
||||
✓ 10 [desktop] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 (1.4s)
|
||||
✓ 11 [desktop] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 (1.0s)
|
||||
✓ 7 [desktop] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 (1.0m)
|
||||
✓ 13 [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (737ms)
|
||||
✓ 12 [desktop] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 (17.5s)
|
||||
(node:815385) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:815426) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✘ 14 [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 (21.6s)
|
||||
(node:815734) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 16 [mobile] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (17.5s)
|
||||
✓ 15 [mobile] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 (42.8s)
|
||||
✓ 18 [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (289ms)
|
||||
✓ 19 [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (17ms)
|
||||
✓ 17 [mobile] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (17.1s)
|
||||
✘ 21 [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 (6.7s)
|
||||
(node:816040) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 22 [mobile] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 (15.6s)
|
||||
✓ 23 [mobile] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 (877ms)
|
||||
✓ 24 [mobile] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 (588ms)
|
||||
✓ 25 [mobile] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 (17.1s)
|
||||
✓ 26 [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (319ms)
|
||||
✓ 20 [mobile] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 (1.1m)
|
||||
|
||||
|
||||
1) [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||
|
||||
Error: expect(received).toEqual(expected) // deep equality
|
||||
|
||||
- Expected - 1
|
||||
+ Received + 3
|
||||
|
||||
- Array []
|
||||
+ Array [
|
||||
+ "Failed to load resource: the server responded with a status of 404 (Not Found)",
|
||||
+ ]
|
||||
|
||||
141 | expect([...requests].sort()).toEqual([...urls].sort());
|
||||
142 | expect(external).toEqual([]);
|
||||
> 143 | expect(errors).toEqual([]);
|
||||
| ^
|
||||
144 | expect(failed).toEqual([]);
|
||||
145 | const path = info.outputPath("browser-audio-integrity.json");
|
||||
146 | writeFileSync(
|
||||
at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:143:18
|
||||
|
||||
Error Context: test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md
|
||||
|
||||
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
|
||||
test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip
|
||||
Usage:
|
||||
|
||||
npx playwright show-trace test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
2) [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 ─────
|
||||
|
||||
Error: expect(received).toEqual(expected) // deep equality
|
||||
|
||||
- Expected - 1
|
||||
+ Received + 3
|
||||
|
||||
Object {
|
||||
- "errors": Array [],
|
||||
+ "errors": Array [
|
||||
+ "Failed to load resource: the server responded with a status of 404 (Not Found)",
|
||||
+ ],
|
||||
"external": Array [],
|
||||
"failed": Array [],
|
||||
}
|
||||
|
||||
168 | expect(probe.stops).toBe(24);
|
||||
169 | expect(requests).toEqual(ENVIRONMENTS.map((e) => `/ambience/${e.id}.wav`));
|
||||
> 170 | expect({ errors, failed, external }).toEqual({
|
||||
| ^
|
||||
171 | errors: [],
|
||||
172 | failed: [],
|
||||
173 | external: [],
|
||||
at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts:170:40
|
||||
|
||||
Error Context: test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-desktop/error-context.md
|
||||
|
||||
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
|
||||
test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-desktop/trace.zip
|
||||
Usage:
|
||||
|
||||
npx playwright show-trace test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-desktop/trace.zip
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
3) [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||
|
||||
Error: expect(received).toEqual(expected) // deep equality
|
||||
|
||||
- Expected - 1
|
||||
+ Received + 3
|
||||
|
||||
- Array []
|
||||
+ Array [
|
||||
+ "Failed to load resource: the server responded with a status of 404 (Not Found)",
|
||||
+ ]
|
||||
|
||||
141 | expect([...requests].sort()).toEqual([...urls].sort());
|
||||
142 | expect(external).toEqual([]);
|
||||
> 143 | expect(errors).toEqual([]);
|
||||
| ^
|
||||
144 | expect(failed).toEqual([]);
|
||||
145 | const path = info.outputPath("browser-audio-integrity.json");
|
||||
146 | writeFileSync(
|
||||
at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:143:18
|
||||
|
||||
Error Context: test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md
|
||||
|
||||
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
|
||||
test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip
|
||||
Usage:
|
||||
|
||||
npx playwright show-trace test-results/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
4) [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 ──────
|
||||
|
||||
Error: expect(received).toEqual(expected) // deep equality
|
||||
|
||||
- Expected - 1
|
||||
+ Received + 3
|
||||
|
||||
Object {
|
||||
- "errors": Array [],
|
||||
+ "errors": Array [
|
||||
+ "Failed to load resource: the server responded with a status of 404 (Not Found)",
|
||||
+ ],
|
||||
"external": Array [],
|
||||
"failed": Array [],
|
||||
}
|
||||
|
||||
168 | expect(probe.stops).toBe(24);
|
||||
169 | expect(requests).toEqual(ENVIRONMENTS.map((e) => `/ambience/${e.id}.wav`));
|
||||
> 170 | expect({ errors, failed, external }).toEqual({
|
||||
| ^
|
||||
171 | errors: [],
|
||||
172 | failed: [],
|
||||
173 | external: [],
|
||||
at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/rounds.spec.ts:170:40
|
||||
|
||||
Error Context: test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-mobile/error-context.md
|
||||
|
||||
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
|
||||
test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-mobile/trace.zip
|
||||
Usage:
|
||||
|
||||
npx playwright show-trace test-results/rounds-여덟-환경의-실제-WAV를-각각-디코드하고-루프-재생한-뒤-즉시-정지한다-mobile/trace.zip
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
4 failed
|
||||
[desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||
[desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 ──────
|
||||
[mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||
[mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 ───────
|
||||
22 passed (3.7m)
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
> find-word@0.2.3 build
|
||||
> tsc --noEmit && vite build && node scripts/check-build.mjs
|
||||
|
||||
vite v8.3.4 building client environment for production...
|
||||
transforming...
|
||||
✓ 21 modules transformed.
|
||||
rendering chunks...
|
||||
computing gzip size...
|
||||
dist/index.html 0.89 kB │ gzip: 0.63 kB
|
||||
dist/assets/index-ouf4Br0q.css 16.03 kB │ gzip: 4.51 kB
|
||||
dist/assets/index-DX70bphC.js 247.63 kB │ gzip: 77.92 kB
|
||||
|
||||
✓ built in 179ms
|
||||
빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인
|
||||
@@ -0,0 +1,5 @@
|
||||
src/App.tsx 216ms
|
||||
src/styles.css 156ms (unchanged)
|
||||
tests/App.test.tsx 107ms
|
||||
tests/browser/rounds.spec.ts 40ms
|
||||
tests/browser/audio.spec.ts 33ms
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
> find-word@0.2.3 test
|
||||
> vitest run
|
||||
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 13 passed (13)
|
||||
Tests 93 passed (93)
|
||||
Start at 08:18:35
|
||||
Duration 21.89s (tests 77%, environment 16%, setup 5%, transform 1%)
|
||||
|
||||
Isolate 13 workers spawned · ~1.02s startup each (spawn + environment, per file)
|
||||
at least ~3.38s faster with isolate: false — reuses workers across files instead of one per file
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
> find-word@0.2.3 lint
|
||||
> eslint . && tsc --noEmit
|
||||
|
||||
@@ -0,0 +1,436 @@
|
||||
test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility)
|
||||
스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok
|
||||
test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing)
|
||||
무음을 정상 현장 녹음으로 포장하지 않는다. ... ok
|
||||
test_all_101_are_validated_before_single_atomic_publication (test_neural_audio.GeneratorContract.test_all_101_are_validated_before_single_atomic_publication) ... [001/101] intro.wav 1.000s
|
||||
[002/101] target-0.wav 1.000s
|
||||
[003/101] target-1.wav 1.000s
|
||||
[004/101] target-2.wav 1.000s
|
||||
[005/101] target-3.wav 1.000s
|
||||
[006/101] target-4.wav 1.000s
|
||||
[007/101] target-5.wav 1.000s
|
||||
[008/101] target-6.wav 1.000s
|
||||
[009/101] target-7.wav 1.000s
|
||||
[010/101] target-8.wav 1.000s
|
||||
[011/101] target-9.wav 1.000s
|
||||
[012/101] target-10.wav 1.000s
|
||||
[013/101] target-11.wav 1.000s
|
||||
[014/101] target-12.wav 1.000s
|
||||
[015/101] target-13.wav 1.000s
|
||||
[016/101] target-14.wav 1.000s
|
||||
[017/101] target-15.wav 1.000s
|
||||
[018/101] target-16.wav 1.000s
|
||||
[019/101] target-17.wav 1.000s
|
||||
[020/101] target-18.wav 1.000s
|
||||
[021/101] target-19.wav 1.000s
|
||||
[022/101] target-20.wav 1.000s
|
||||
[023/101] target-21.wav 1.000s
|
||||
[024/101] target-22.wav 1.000s
|
||||
[025/101] target-23.wav 1.000s
|
||||
[026/101] target-24.wav 1.000s
|
||||
[027/101] target-25.wav 1.000s
|
||||
[028/101] target-26.wav 1.000s
|
||||
[029/101] target-27.wav 1.000s
|
||||
[030/101] target-28.wav 1.000s
|
||||
[031/101] target-29.wav 1.000s
|
||||
[032/101] target-30.wav 1.000s
|
||||
[033/101] target-31.wav 1.000s
|
||||
[034/101] target-32.wav 1.000s
|
||||
[035/101] target-33.wav 1.000s
|
||||
[036/101] target-34.wav 1.000s
|
||||
[037/101] target-35.wav 1.000s
|
||||
[038/101] target-36.wav 1.000s
|
||||
[039/101] target-37.wav 1.000s
|
||||
[040/101] target-38.wav 1.000s
|
||||
[041/101] target-39.wav 1.000s
|
||||
[042/101] target-40.wav 1.000s
|
||||
[043/101] target-41.wav 1.000s
|
||||
[044/101] target-42.wav 1.000s
|
||||
[045/101] target-43.wav 1.000s
|
||||
[046/101] target-44.wav 1.000s
|
||||
[047/101] target-45.wav 1.000s
|
||||
[048/101] target-46.wav 1.000s
|
||||
[049/101] target-47.wav 1.000s
|
||||
[050/101] target-48.wav 1.000s
|
||||
[051/101] target-49.wav 1.000s
|
||||
[052/101] target-50.wav 1.000s
|
||||
[053/101] target-51.wav 1.000s
|
||||
[054/101] target-52.wav 1.000s
|
||||
[055/101] target-53.wav 1.000s
|
||||
[056/101] target-54.wav 1.000s
|
||||
[057/101] target-55.wav 1.000s
|
||||
[058/101] target-56.wav 1.000s
|
||||
[059/101] target-57.wav 1.000s
|
||||
[060/101] target-58.wav 1.000s
|
||||
[061/101] target-59.wav 1.000s
|
||||
[062/101] target-60.wav 1.000s
|
||||
[063/101] target-61.wav 1.000s
|
||||
[064/101] target-62.wav 1.000s
|
||||
[065/101] target-63.wav 1.000s
|
||||
[066/101] target-64.wav 1.000s
|
||||
[067/101] target-65.wav 1.000s
|
||||
[068/101] target-66.wav 1.000s
|
||||
[069/101] target-67.wav 1.000s
|
||||
[070/101] target-68.wav 1.000s
|
||||
[071/101] target-69.wav 1.000s
|
||||
[072/101] target-70.wav 1.000s
|
||||
[073/101] target-71.wav 1.000s
|
||||
[074/101] target-72.wav 1.000s
|
||||
[075/101] target-73.wav 1.000s
|
||||
[076/101] target-74.wav 1.000s
|
||||
[077/101] target-75.wav 1.000s
|
||||
[078/101] target-76.wav 1.000s
|
||||
[079/101] target-77.wav 1.000s
|
||||
[080/101] target-78.wav 1.000s
|
||||
[081/101] target-79.wav 1.000s
|
||||
[082/101] target-80.wav 1.000s
|
||||
[083/101] target-81.wav 1.000s
|
||||
[084/101] target-82.wav 1.000s
|
||||
[085/101] target-83.wav 1.000s
|
||||
[086/101] target-84.wav 1.000s
|
||||
[087/101] target-85.wav 1.000s
|
||||
[088/101] target-86.wav 1.000s
|
||||
[089/101] target-87.wav 1.000s
|
||||
[090/101] target-88.wav 1.000s
|
||||
[091/101] target-89.wav 1.000s
|
||||
[092/101] target-90.wav 1.000s
|
||||
[093/101] target-91.wav 1.000s
|
||||
[094/101] target-92.wav 1.000s
|
||||
[095/101] target-93.wav 1.000s
|
||||
[096/101] target-94.wav 1.000s
|
||||
[097/101] target-95.wav 1.000s
|
||||
[098/101] target-96.wav 1.000s
|
||||
[099/101] target-97.wav 1.000s
|
||||
[100/101] target-98.wav 1.000s
|
||||
[101/101] target-99.wav 1.000s
|
||||
ok
|
||||
test_atomic_exchange_keeps_old_tree_at_staging_path (test_neural_audio.GeneratorContract.test_atomic_exchange_keeps_old_tree_at_staging_path) ... ok
|
||||
test_atomic_first_publication (test_neural_audio.GeneratorContract.test_atomic_first_publication) ... ok
|
||||
test_cli_import_has_no_generation_or_filesystem_side_effects (test_neural_audio.GeneratorContract.test_cli_import_has_no_generation_or_filesystem_side_effects) ... ok
|
||||
test_edge_adapter_uses_pinned_python_prosody_timeout_and_no_shell (test_neural_audio.GeneratorContract.test_edge_adapter_uses_pinned_python_prosody_timeout_and_no_shell) ... ok
|
||||
test_exhausted_provider_failure_preserves_existing_files_and_redacts_secrets (test_neural_audio.GeneratorContract.test_exhausted_provider_failure_preserves_existing_files_and_redacts_secrets) ... ok
|
||||
test_ffmpeg_adapter_actually_decodes_mp3_to_normalized_pcm24 (test_neural_audio.GeneratorContract.test_ffmpeg_adapter_actually_decodes_mp3_to_normalized_pcm24) ... ok
|
||||
test_ffmpeg_failure_is_not_retried_and_preserves_existing_files (test_neural_audio.GeneratorContract.test_ffmpeg_failure_is_not_retried_and_preserves_existing_files) ... ok
|
||||
test_full_validation_detects_changed_earlier_file_before_publication (test_neural_audio.GeneratorContract.test_full_validation_detects_changed_earlier_file_before_publication) ... [001/101] intro.wav 1.000s
|
||||
[002/101] target-0.wav 1.000s
|
||||
[003/101] target-1.wav 1.000s
|
||||
[004/101] target-2.wav 1.000s
|
||||
[005/101] target-3.wav 1.000s
|
||||
[006/101] target-4.wav 1.000s
|
||||
[007/101] target-5.wav 1.000s
|
||||
[008/101] target-6.wav 1.000s
|
||||
[009/101] target-7.wav 1.000s
|
||||
[010/101] target-8.wav 1.000s
|
||||
[011/101] target-9.wav 1.000s
|
||||
[012/101] target-10.wav 1.000s
|
||||
[013/101] target-11.wav 1.000s
|
||||
[014/101] target-12.wav 1.000s
|
||||
[015/101] target-13.wav 1.000s
|
||||
[016/101] target-14.wav 1.000s
|
||||
[017/101] target-15.wav 1.000s
|
||||
[018/101] target-16.wav 1.000s
|
||||
[019/101] target-17.wav 1.000s
|
||||
[020/101] target-18.wav 1.000s
|
||||
[021/101] target-19.wav 1.000s
|
||||
[022/101] target-20.wav 1.000s
|
||||
[023/101] target-21.wav 1.000s
|
||||
[024/101] target-22.wav 1.000s
|
||||
[025/101] target-23.wav 1.000s
|
||||
[026/101] target-24.wav 1.000s
|
||||
[027/101] target-25.wav 1.000s
|
||||
[028/101] target-26.wav 1.000s
|
||||
[029/101] target-27.wav 1.000s
|
||||
[030/101] target-28.wav 1.000s
|
||||
[031/101] target-29.wav 1.000s
|
||||
[032/101] target-30.wav 1.000s
|
||||
[033/101] target-31.wav 1.000s
|
||||
[034/101] target-32.wav 1.000s
|
||||
[035/101] target-33.wav 1.000s
|
||||
[036/101] target-34.wav 1.000s
|
||||
[037/101] target-35.wav 1.000s
|
||||
[038/101] target-36.wav 1.000s
|
||||
[039/101] target-37.wav 1.000s
|
||||
[040/101] target-38.wav 1.000s
|
||||
[041/101] target-39.wav 1.000s
|
||||
[042/101] target-40.wav 1.000s
|
||||
[043/101] target-41.wav 1.000s
|
||||
[044/101] target-42.wav 1.000s
|
||||
[045/101] target-43.wav 1.000s
|
||||
[046/101] target-44.wav 1.000s
|
||||
[047/101] target-45.wav 1.000s
|
||||
[048/101] target-46.wav 1.000s
|
||||
[049/101] target-47.wav 1.000s
|
||||
[050/101] target-48.wav 1.000s
|
||||
[051/101] target-49.wav 1.000s
|
||||
[052/101] target-50.wav 1.000s
|
||||
[053/101] target-51.wav 1.000s
|
||||
[054/101] target-52.wav 1.000s
|
||||
[055/101] target-53.wav 1.000s
|
||||
[056/101] target-54.wav 1.000s
|
||||
[057/101] target-55.wav 1.000s
|
||||
[058/101] target-56.wav 1.000s
|
||||
[059/101] target-57.wav 1.000s
|
||||
[060/101] target-58.wav 1.000s
|
||||
[061/101] target-59.wav 1.000s
|
||||
[062/101] target-60.wav 1.000s
|
||||
[063/101] target-61.wav 1.000s
|
||||
[064/101] target-62.wav 1.000s
|
||||
[065/101] target-63.wav 1.000s
|
||||
[066/101] target-64.wav 1.000s
|
||||
[067/101] target-65.wav 1.000s
|
||||
[068/101] target-66.wav 1.000s
|
||||
[069/101] target-67.wav 1.000s
|
||||
[070/101] target-68.wav 1.000s
|
||||
[071/101] target-69.wav 1.000s
|
||||
[072/101] target-70.wav 1.000s
|
||||
[073/101] target-71.wav 1.000s
|
||||
[074/101] target-72.wav 1.000s
|
||||
[075/101] target-73.wav 1.000s
|
||||
[076/101] target-74.wav 1.000s
|
||||
[077/101] target-75.wav 1.000s
|
||||
[078/101] target-76.wav 1.000s
|
||||
[079/101] target-77.wav 1.000s
|
||||
[080/101] target-78.wav 1.000s
|
||||
[081/101] target-79.wav 1.000s
|
||||
[082/101] target-80.wav 1.000s
|
||||
[083/101] target-81.wav 1.000s
|
||||
[084/101] target-82.wav 1.000s
|
||||
[085/101] target-83.wav 1.000s
|
||||
[086/101] target-84.wav 1.000s
|
||||
[087/101] target-85.wav 1.000s
|
||||
[088/101] target-86.wav 1.000s
|
||||
[089/101] target-87.wav 1.000s
|
||||
[090/101] target-88.wav 1.000s
|
||||
[091/101] target-89.wav 1.000s
|
||||
[092/101] target-90.wav 1.000s
|
||||
[093/101] target-91.wav 1.000s
|
||||
[094/101] target-92.wav 1.000s
|
||||
[095/101] target-93.wav 1.000s
|
||||
[096/101] target-94.wav 1.000s
|
||||
[097/101] target-95.wav 1.000s
|
||||
[098/101] target-96.wav 1.000s
|
||||
[099/101] target-97.wav 1.000s
|
||||
[100/101] target-98.wav 1.000s
|
||||
[101/101] target-99.wav 1.000s
|
||||
ok
|
||||
test_interruption_preserves_existing_files_and_cleans_temporary_data (test_neural_audio.GeneratorContract.test_interruption_preserves_existing_files_and_cleans_temporary_data) ... ok
|
||||
test_invalid_pcm_never_reaches_publication (test_neural_audio.GeneratorContract.test_invalid_pcm_never_reaches_publication) ... ok
|
||||
test_publication_failure_preserves_existing_files (test_neural_audio.GeneratorContract.test_publication_failure_preserves_existing_files) ... [001/101] intro.wav 1.000s
|
||||
[002/101] target-0.wav 1.000s
|
||||
[003/101] target-1.wav 1.000s
|
||||
[004/101] target-2.wav 1.000s
|
||||
[005/101] target-3.wav 1.000s
|
||||
[006/101] target-4.wav 1.000s
|
||||
[007/101] target-5.wav 1.000s
|
||||
[008/101] target-6.wav 1.000s
|
||||
[009/101] target-7.wav 1.000s
|
||||
[010/101] target-8.wav 1.000s
|
||||
[011/101] target-9.wav 1.000s
|
||||
[012/101] target-10.wav 1.000s
|
||||
[013/101] target-11.wav 1.000s
|
||||
[014/101] target-12.wav 1.000s
|
||||
[015/101] target-13.wav 1.000s
|
||||
[016/101] target-14.wav 1.000s
|
||||
[017/101] target-15.wav 1.000s
|
||||
[018/101] target-16.wav 1.000s
|
||||
[019/101] target-17.wav 1.000s
|
||||
[020/101] target-18.wav 1.000s
|
||||
[021/101] target-19.wav 1.000s
|
||||
[022/101] target-20.wav 1.000s
|
||||
[023/101] target-21.wav 1.000s
|
||||
[024/101] target-22.wav 1.000s
|
||||
[025/101] target-23.wav 1.000s
|
||||
[026/101] target-24.wav 1.000s
|
||||
[027/101] target-25.wav 1.000s
|
||||
[028/101] target-26.wav 1.000s
|
||||
[029/101] target-27.wav 1.000s
|
||||
[030/101] target-28.wav 1.000s
|
||||
[031/101] target-29.wav 1.000s
|
||||
[032/101] target-30.wav 1.000s
|
||||
[033/101] target-31.wav 1.000s
|
||||
[034/101] target-32.wav 1.000s
|
||||
[035/101] target-33.wav 1.000s
|
||||
[036/101] target-34.wav 1.000s
|
||||
[037/101] target-35.wav 1.000s
|
||||
[038/101] target-36.wav 1.000s
|
||||
[039/101] target-37.wav 1.000s
|
||||
[040/101] target-38.wav 1.000s
|
||||
[041/101] target-39.wav 1.000s
|
||||
[042/101] target-40.wav 1.000s
|
||||
[043/101] target-41.wav 1.000s
|
||||
[044/101] target-42.wav 1.000s
|
||||
[045/101] target-43.wav 1.000s
|
||||
[046/101] target-44.wav 1.000s
|
||||
[047/101] target-45.wav 1.000s
|
||||
[048/101] target-46.wav 1.000s
|
||||
[049/101] target-47.wav 1.000s
|
||||
[050/101] target-48.wav 1.000s
|
||||
[051/101] target-49.wav 1.000s
|
||||
[052/101] target-50.wav 1.000s
|
||||
[053/101] target-51.wav 1.000s
|
||||
[054/101] target-52.wav 1.000s
|
||||
[055/101] target-53.wav 1.000s
|
||||
[056/101] target-54.wav 1.000s
|
||||
[057/101] target-55.wav 1.000s
|
||||
[058/101] target-56.wav 1.000s
|
||||
[059/101] target-57.wav 1.000s
|
||||
[060/101] target-58.wav 1.000s
|
||||
[061/101] target-59.wav 1.000s
|
||||
[062/101] target-60.wav 1.000s
|
||||
[063/101] target-61.wav 1.000s
|
||||
[064/101] target-62.wav 1.000s
|
||||
[065/101] target-63.wav 1.000s
|
||||
[066/101] target-64.wav 1.000s
|
||||
[067/101] target-65.wav 1.000s
|
||||
[068/101] target-66.wav 1.000s
|
||||
[069/101] target-67.wav 1.000s
|
||||
[070/101] target-68.wav 1.000s
|
||||
[071/101] target-69.wav 1.000s
|
||||
[072/101] target-70.wav 1.000s
|
||||
[073/101] target-71.wav 1.000s
|
||||
[074/101] target-72.wav 1.000s
|
||||
[075/101] target-73.wav 1.000s
|
||||
[076/101] target-74.wav 1.000s
|
||||
[077/101] target-75.wav 1.000s
|
||||
[078/101] target-76.wav 1.000s
|
||||
[079/101] target-77.wav 1.000s
|
||||
[080/101] target-78.wav 1.000s
|
||||
[081/101] target-79.wav 1.000s
|
||||
[082/101] target-80.wav 1.000s
|
||||
[083/101] target-81.wav 1.000s
|
||||
[084/101] target-82.wav 1.000s
|
||||
[085/101] target-83.wav 1.000s
|
||||
[086/101] target-84.wav 1.000s
|
||||
[087/101] target-85.wav 1.000s
|
||||
[088/101] target-86.wav 1.000s
|
||||
[089/101] target-87.wav 1.000s
|
||||
[090/101] target-88.wav 1.000s
|
||||
[091/101] target-89.wav 1.000s
|
||||
[092/101] target-90.wav 1.000s
|
||||
[093/101] target-91.wav 1.000s
|
||||
[094/101] target-92.wav 1.000s
|
||||
[095/101] target-93.wav 1.000s
|
||||
[096/101] target-94.wav 1.000s
|
||||
[097/101] target-95.wav 1.000s
|
||||
[098/101] target-96.wav 1.000s
|
||||
[099/101] target-97.wav 1.000s
|
||||
[100/101] target-98.wav 1.000s
|
||||
[101/101] target-99.wav 1.000s
|
||||
ok
|
||||
test_rejects_incomplete_or_duplicate_or_unsafe_inventory_before_requests (test_neural_audio.GeneratorContract.test_rejects_incomplete_or_duplicate_or_unsafe_inventory_before_requests) ... ok
|
||||
test_timeout_is_bounded_and_preserves_existing_files (test_neural_audio.GeneratorContract.test_timeout_is_bounded_and_preserves_existing_files) ... intro.wav: provider 시도 1/3 실패
|
||||
intro.wav: provider 시도 2/3 실패
|
||||
intro.wav: provider 시도 3/3 실패
|
||||
ok
|
||||
test_transient_provider_failures_retry_cleanly_with_bounded_backoff (test_neural_audio.GeneratorContract.test_transient_provider_failures_retry_cleanly_with_bounded_backoff) ... intro.wav: provider 시도 1/3 실패
|
||||
intro.wav: provider 시도 2/3 실패
|
||||
[001/101] intro.wav 1.000s
|
||||
[002/101] target-0.wav 1.000s
|
||||
[003/101] target-1.wav 1.000s
|
||||
[004/101] target-2.wav 1.000s
|
||||
[005/101] target-3.wav 1.000s
|
||||
[006/101] target-4.wav 1.000s
|
||||
[007/101] target-5.wav 1.000s
|
||||
[008/101] target-6.wav 1.000s
|
||||
[009/101] target-7.wav 1.000s
|
||||
[010/101] target-8.wav 1.000s
|
||||
[011/101] target-9.wav 1.000s
|
||||
[012/101] target-10.wav 1.000s
|
||||
[013/101] target-11.wav 1.000s
|
||||
[014/101] target-12.wav 1.000s
|
||||
[015/101] target-13.wav 1.000s
|
||||
[016/101] target-14.wav 1.000s
|
||||
[017/101] target-15.wav 1.000s
|
||||
[018/101] target-16.wav 1.000s
|
||||
[019/101] target-17.wav 1.000s
|
||||
[020/101] target-18.wav 1.000s
|
||||
[021/101] target-19.wav 1.000s
|
||||
[022/101] target-20.wav 1.000s
|
||||
[023/101] target-21.wav 1.000s
|
||||
[024/101] target-22.wav 1.000s
|
||||
[025/101] target-23.wav 1.000s
|
||||
[026/101] target-24.wav 1.000s
|
||||
[027/101] target-25.wav 1.000s
|
||||
[028/101] target-26.wav 1.000s
|
||||
[029/101] target-27.wav 1.000s
|
||||
[030/101] target-28.wav 1.000s
|
||||
[031/101] target-29.wav 1.000s
|
||||
[032/101] target-30.wav 1.000s
|
||||
[033/101] target-31.wav 1.000s
|
||||
[034/101] target-32.wav 1.000s
|
||||
[035/101] target-33.wav 1.000s
|
||||
[036/101] target-34.wav 1.000s
|
||||
[037/101] target-35.wav 1.000s
|
||||
[038/101] target-36.wav 1.000s
|
||||
[039/101] target-37.wav 1.000s
|
||||
[040/101] target-38.wav 1.000s
|
||||
[041/101] target-39.wav 1.000s
|
||||
[042/101] target-40.wav 1.000s
|
||||
[043/101] target-41.wav 1.000s
|
||||
[044/101] target-42.wav 1.000s
|
||||
[045/101] target-43.wav 1.000s
|
||||
[046/101] target-44.wav 1.000s
|
||||
[047/101] target-45.wav 1.000s
|
||||
[048/101] target-46.wav 1.000s
|
||||
[049/101] target-47.wav 1.000s
|
||||
[050/101] target-48.wav 1.000s
|
||||
[051/101] target-49.wav 1.000s
|
||||
[052/101] target-50.wav 1.000s
|
||||
[053/101] target-51.wav 1.000s
|
||||
[054/101] target-52.wav 1.000s
|
||||
[055/101] target-53.wav 1.000s
|
||||
[056/101] target-54.wav 1.000s
|
||||
[057/101] target-55.wav 1.000s
|
||||
[058/101] target-56.wav 1.000s
|
||||
[059/101] target-57.wav 1.000s
|
||||
[060/101] target-58.wav 1.000s
|
||||
[061/101] target-59.wav 1.000s
|
||||
[062/101] target-60.wav 1.000s
|
||||
[063/101] target-61.wav 1.000s
|
||||
[064/101] target-62.wav 1.000s
|
||||
[065/101] target-63.wav 1.000s
|
||||
[066/101] target-64.wav 1.000s
|
||||
[067/101] target-65.wav 1.000s
|
||||
[068/101] target-66.wav 1.000s
|
||||
[069/101] target-67.wav 1.000s
|
||||
[070/101] target-68.wav 1.000s
|
||||
[071/101] target-69.wav 1.000s
|
||||
[072/101] target-70.wav 1.000s
|
||||
[073/101] target-71.wav 1.000s
|
||||
[074/101] target-72.wav 1.000s
|
||||
[075/101] target-73.wav 1.000s
|
||||
[076/101] target-74.wav 1.000s
|
||||
[077/101] target-75.wav 1.000s
|
||||
[078/101] target-76.wav 1.000s
|
||||
[079/101] target-77.wav 1.000s
|
||||
[080/101] target-78.wav 1.000s
|
||||
[081/101] target-79.wav 1.000s
|
||||
[082/101] target-80.wav 1.000s
|
||||
[083/101] target-81.wav 1.000s
|
||||
[084/101] target-82.wav 1.000s
|
||||
[085/101] target-83.wav 1.000s
|
||||
[086/101] target-84.wav 1.000s
|
||||
[087/101] target-85.wav 1.000s
|
||||
[088/101] target-86.wav 1.000s
|
||||
[089/101] target-87.wav 1.000s
|
||||
[090/101] target-88.wav 1.000s
|
||||
[091/101] target-89.wav 1.000s
|
||||
[092/101] target-90.wav 1.000s
|
||||
[093/101] target-91.wav 1.000s
|
||||
[094/101] target-92.wav 1.000s
|
||||
[095/101] target-93.wav 1.000s
|
||||
[096/101] target-94.wav 1.000s
|
||||
[097/101] target-95.wav 1.000s
|
||||
[098/101] target-96.wav 1.000s
|
||||
[099/101] target-97.wav 1.000s
|
||||
[100/101] target-98.wav 1.000s
|
||||
[101/101] target-99.wav 1.000s
|
||||
ok
|
||||
test_wrong_edge_version_fails_before_network_or_asset_changes (test_neural_audio.GeneratorContract.test_wrong_edge_version_fails_before_network_or_asset_changes) ... ok
|
||||
test_rejects_silence_clipping_bad_format_and_abnormal_duration (test_neural_audio.PCMContract.test_rejects_silence_clipping_bad_format_and_abnormal_duration) ... ok
|
||||
test_valid_pcm_returns_measured_hash_bytes_duration_and_levels (test_neural_audio.PCMContract.test_valid_pcm_returns_measured_hash_bytes_duration_and_levels) ... ok
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 20 tests in 14.965s
|
||||
|
||||
OK
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 1 passed (1)
|
||||
Tests 1 passed | 4 skipped (5)
|
||||
Start at 08:20:33
|
||||
Duration 456ms (setup 82%, transform 9%, worker 3%, import 3%, tests 2%)
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/release.test.ts (5 tests | 1 failed | 4 skipped) 15ms
|
||||
× HTML은 같은 문서의 내장 아이콘을 제공해 누락 favicon 요청을 막는다 12ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/release.test.ts > HTML은 같은 문서의 내장 아이콘을 제공해 누락 favicon 요청을 막는다
|
||||
AssertionError: expected '<!doctype html>\n<!-- 문서 언어를 한국어로 명시하…' to match /<link rel="icon" href="data:…/svg\+xml,
|
||||
|
||||
- Expected:
|
||||
/<link rel="icon" href="data:image\/svg\+xml,/
|
||||
|
||||
+ Received:
|
||||
"<!doctype html>
|
||||
<!-- 문서 언어를 한국어로 명시하여 보조 기기의 발음과 줄바꿈 기준을 맞춘다.
|
||||
외부 폰트·CDN을 사용하지 않으며 모든 실행 자산은 같은 출처에서 제공한다. -->
|
||||
<html lang=\"ko\">
|
||||
<head>
|
||||
<meta charset=\"UTF-8\" />
|
||||
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />
|
||||
<meta name=\"theme-color\" content=\"#f8f9f4\" />
|
||||
<meta
|
||||
name=\"description\"
|
||||
content=\"소음 속 작은 한국어 단어를 찾는 청각적 주의·식별 게임. 에스와 함께 나만의 속도로 소리를 탐험하세요.\"
|
||||
/>
|
||||
<title>단어를 맞춰라 · Find-Word v0.2.3</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id=\"root\"></div>
|
||||
<script type=\"module\" src=\"/src/main.tsx\"></script>
|
||||
</body>
|
||||
</html>
|
||||
"
|
||||
|
||||
❯ tests/release.test.ts:82:16
|
||||
80| it("HTML은 같은 문서의 내장 아이콘을 제공해 누락 favicon 요청을 막는다", () => {
|
||||
81| const html = readFileSync("index.html", "utf8");
|
||||
82| expect(html).toMatch(/<link rel="icon" href="data:image\/svg\+xml,/);
|
||||
| ^
|
||||
83| });
|
||||
84|
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 1 failed | 4 skipped (5)
|
||||
Start at 08:20:31
|
||||
Duration 658ms (setup 70%, transform 18%, worker 7%, tests 4%, import 2%)
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
> find-word@0.2.3 test:browser
|
||||
> playwright test --reporter=list,json
|
||||
|
||||
[WebServer] (node:816884) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
Running 26 tests using 2 workers
|
||||
|
||||
(node:816906) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:816907) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 1 [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 (16.1s)
|
||||
✓ 3 [desktop] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (16.1s)
|
||||
✓ 4 [desktop] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (12.6s)
|
||||
✓ 5 [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (481ms)
|
||||
✓ 6 [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (28ms)
|
||||
✓ 2 [desktop] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 (45.9s)
|
||||
✓ 8 [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 (8.0s)
|
||||
✓ 9 [desktop] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 (17.3s)
|
||||
✓ 10 [desktop] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 (1.6s)
|
||||
✓ 11 [desktop] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 (1.1s)
|
||||
✓ 12 [desktop] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 (17.4s)
|
||||
✓ 13 [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (570ms)
|
||||
(node:817547) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 7 [desktop] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 (1.0m)
|
||||
(node:817697) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 14 [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 (18.6s)
|
||||
✓ 16 [mobile] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (13.8s)
|
||||
✓ 17 [mobile] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (15.7s)
|
||||
✓ 18 [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (328ms)
|
||||
✓ 19 [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (24ms)
|
||||
✓ 15 [mobile] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 (38.3s)
|
||||
✓ 21 [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 (6.3s)
|
||||
✓ 22 [mobile] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 (15.4s)
|
||||
✓ 23 [mobile] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 (809ms)
|
||||
✓ 24 [mobile] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 (657ms)
|
||||
✓ 25 [mobile] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 (17.1s)
|
||||
✓ 26 [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (320ms)
|
||||
✓ 20 [mobile] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 (50.9s)
|
||||
|
||||
26 passed (3.2m)
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
> find-word@0.2.3 build
|
||||
> tsc --noEmit && vite build && node scripts/check-build.mjs
|
||||
|
||||
vite v8.3.4 building client environment for production...
|
||||
transforming...
|
||||
✓ 21 modules transformed.
|
||||
rendering chunks...
|
||||
computing gzip size...
|
||||
dist/index.html 1.31 kB │ gzip: 0.91 kB
|
||||
dist/assets/index-ouf4Br0q.css 16.03 kB │ gzip: 4.51 kB
|
||||
dist/assets/index-DX70bphC.js 247.63 kB │ gzip: 77.92 kB
|
||||
|
||||
✓ built in 418ms
|
||||
빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
> find-word@0.2.3 test
|
||||
> vitest run
|
||||
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 13 passed (13)
|
||||
Tests 94 passed (94)
|
||||
Start at 08:23:49
|
||||
Duration 14.49s (tests 75%, environment 16%, setup 7%, import 1%)
|
||||
|
||||
Isolate 13 workers spawned · ~703ms startup each (spawn + environment, per file)
|
||||
at least ~2.34s faster with isolate: false — reuses workers across files instead of one per file
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
> find-word@0.2.3 lint
|
||||
> eslint . && tsc --noEmit
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
src/App.tsx 221ms (unchanged)
|
||||
tests/browser/ui.spec.ts 37ms
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
> find-word@0.2.3 test:browser
|
||||
> playwright test tests/browser/ui.spec.ts -g 시작 단계와 SNR 설정
|
||||
|
||||
[WebServer] (node:819052) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
Running 2 tests using 2 workers
|
||||
|
||||
(node:819088) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:819089) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 1 [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (1.7s)
|
||||
✓ 2 [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (1.6s)
|
||||
|
||||
2 passed (5.6s)
|
||||
@@ -0,0 +1,46 @@
|
||||
|
||||
> find-word@0.2.3 test:browser
|
||||
> playwright test tests/browser/ui.spec.ts -g 시작 단계와 SNR 설정
|
||||
|
||||
[WebServer] (node:818488) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
Running 2 tests using 2 workers
|
||||
|
||||
(node:818508) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:818509) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 1 [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (815ms)
|
||||
✘ 2 [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (903ms)
|
||||
|
||||
|
||||
1) [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 ─────────────
|
||||
|
||||
Error: expect(received).toBe(expected) // Object.is equality
|
||||
|
||||
Expected: true
|
||||
Received: false
|
||||
|
||||
144 | return context.measureText(select.selectedOptions[0]!.text).width <= available;
|
||||
145 | });
|
||||
> 146 | expect(labelFits).toBe(true);
|
||||
| ^
|
||||
147 | expect(
|
||||
148 | await page.evaluate(
|
||||
149 | () => document.documentElement.scrollWidth <= innerWidth,
|
||||
at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/ui.spec.ts:146:21
|
||||
|
||||
Error Context: test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-mobile/error-context.md
|
||||
|
||||
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
|
||||
test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-mobile/trace.zip
|
||||
Usage:
|
||||
|
||||
npx playwright show-trace test-results/ui-시작-단계와-SNR-설정은-카드-안에-들어가고-터치-영역을-확보한다-mobile/trace.zip
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
1 failed
|
||||
[mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 ──────────────
|
||||
1 passed (2.4s)
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
> find-word@0.2.3 test:browser
|
||||
> playwright test --reporter=list,json
|
||||
|
||||
[WebServer] (node:819653) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
Running 26 tests using 2 workers
|
||||
|
||||
(node:819674) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
(node:819675) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 1 [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 (17.4s)
|
||||
✓ 3 [desktop] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (19.6s)
|
||||
✓ 2 [desktop] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 (43.4s)
|
||||
✓ 5 [desktop] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (432ms)
|
||||
✓ 6 [desktop] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (23ms)
|
||||
✓ 4 [desktop] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (17.3s)
|
||||
✓ 8 [desktop] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 (8.5s)
|
||||
✓ 9 [desktop] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 (12.7s)
|
||||
✓ 10 [desktop] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 (1.5s)
|
||||
✓ 11 [desktop] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 (1.1s)
|
||||
✓ 12 [desktop] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 (17.4s)
|
||||
✓ 13 [desktop] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (497ms)
|
||||
(node:820318) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 7 [desktop] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 (1.0m)
|
||||
(node:820449) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
✓ 14 [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다 (18.7s)
|
||||
✓ 16 [mobile] › tests/browser/game.spec.ts:130:3 › intro WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (16.3s)
|
||||
✓ 15 [mobile] › tests/browser/game.spec.ts:8:1 › 실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부 요청 없음 (38.5s)
|
||||
✓ 18 [mobile] › tests/browser/release.spec.ts:6:1 › 릴리스는 사용자 크레딧과 런타임 MIT notice 전문을 제공한다 (306ms)
|
||||
✓ 19 [mobile] › tests/browser/release.spec.ts:24:1 › 누락 음성·환경음은 query와 HTML accept에도 404이고 출처 고지는 번들된다 (19ms)
|
||||
✓ 17 [mobile] › tests/browser/game.spec.ts:130:3 › target WAV query URL의 404를 표시하고 같은 URL로 재시도·정답 mapping한다 (13.5s)
|
||||
✓ 21 [mobile] › tests/browser/rounds.spec.ts:135:1 › 여덟 환경의 실제 WAV를 각각 디코드하고 루프 재생한 뒤 즉시 정지한다 (6.5s)
|
||||
✓ 22 [mobile] › tests/browser/rounds.spec.ts:178:1 › 환경음 404는 한국어 오류와 재시도 후 정상 답변으로 복구한다 (13.4s)
|
||||
✓ 23 [mobile] › tests/browser/ui.spec.ts:4:1 › 전체 음량은 설정 흐름 안에 들어가며 키보드로 조절된다 (780ms)
|
||||
✓ 24 [mobile] › tests/browser/ui.spec.ts:52:1 › 난이도 설명은 모바일에서도 보인다 (614ms)
|
||||
✓ 25 [mobile] › tests/browser/ui.spec.ts:68:1 › 한국어 제목은 단어 중간에서 줄바꿈하지 않는다 (17.0s)
|
||||
✓ 26 [mobile] › tests/browser/ui.spec.ts:121:1 › 시작 단계와 SNR 설정은 카드 안에 들어가고 터치 영역을 확보한다 (336ms)
|
||||
✓ 20 [mobile] › tests/browser/rounds.spec.ts:35:1 › 시작 단계·SNR·3문항 완료→다음 단계·재생 중 종료·응답 후 종료·홈 초기화 (1.1m)
|
||||
|
||||
26 passed (3.6m)
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
> find-word@0.2.3 build
|
||||
> tsc --noEmit && vite build && node scripts/check-build.mjs
|
||||
|
||||
vite v8.3.4 building client environment for production...
|
||||
transforming...
|
||||
✓ 21 modules transformed.
|
||||
rendering chunks...
|
||||
computing gzip size...
|
||||
dist/index.html 1.31 kB │ gzip: 0.91 kB
|
||||
dist/assets/index-ouf4Br0q.css 16.03 kB │ gzip: 4.51 kB
|
||||
dist/assets/index-CzKH5UaH.js 247.61 kB │ gzip: 77.92 kB
|
||||
|
||||
✓ built in 177ms
|
||||
빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
> find-word@0.2.3 test
|
||||
> vitest run
|
||||
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 13 passed (13)
|
||||
Tests 94 passed (94)
|
||||
Start at 08:30:56
|
||||
Duration 15.28s (tests 77%, environment 15%, setup 6%, transform 1%, import 1%)
|
||||
|
||||
Isolate 13 workers spawned · ~662ms startup each (spawn + environment, per file)
|
||||
at least ~2.21s faster with isolate: false — reuses workers across files instead of one per file
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
> find-word@0.2.3 lint
|
||||
> eslint . && tsc --noEmit
|
||||
|
||||
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 81 KiB |
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"errors": [],
|
||||
"failed": [],
|
||||
"external": [],
|
||||
"audio": {
|
||||
"starts": [
|
||||
{
|
||||
"loop": true,
|
||||
"duration": 12
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 7.055986394557823
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 5.0639909297052155
|
||||
},
|
||||
{
|
||||
"loop": true,
|
||||
"duration": 12
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 8.447981859410431
|
||||
},
|
||||
{
|
||||
"loop": true,
|
||||
"duration": 12
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 10.895986394557823
|
||||
},
|
||||
{
|
||||
"loop": true,
|
||||
"duration": 12
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 7.055986394557823
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 8.255986394557823
|
||||
},
|
||||
{
|
||||
"loop": true,
|
||||
"duration": 12
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 7.055986394557823
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 7.223990929705216
|
||||
},
|
||||
{
|
||||
"loop": true,
|
||||
"duration": 12
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 7.223990929705216
|
||||
}
|
||||
],
|
||||
"stops": 15
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 165 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 69 KiB |
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"errors": [],
|
||||
"failed": [],
|
||||
"external": [],
|
||||
"audio": {
|
||||
"starts": [
|
||||
{
|
||||
"loop": true,
|
||||
"duration": 12
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 7.055986394557823
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 7.2
|
||||
},
|
||||
{
|
||||
"loop": true,
|
||||
"duration": 12
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 8.351995464852608
|
||||
},
|
||||
{
|
||||
"loop": true,
|
||||
"duration": 12
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 10.679977324263039
|
||||
},
|
||||
{
|
||||
"loop": true,
|
||||
"duration": 12
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 7.055986394557823
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 4.919977324263039
|
||||
},
|
||||
{
|
||||
"loop": true,
|
||||
"duration": 12
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 7.055986394557823
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 10.871995464852608
|
||||
},
|
||||
{
|
||||
"loop": true,
|
||||
"duration": 12
|
||||
},
|
||||
{
|
||||
"loop": false,
|
||||
"duration": 10.871995464852608
|
||||
}
|
||||
],
|
||||
"stops": 15
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 140 KiB |
@@ -0,0 +1,491 @@
|
||||
{
|
||||
"chrome": "Google Chrome 146.0.7680.80",
|
||||
"chromiumSandbox": true,
|
||||
"noSandboxFlagCount": 0,
|
||||
"processes": [
|
||||
{
|
||||
"pid": 168249,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "0",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 168264,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 168265,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=zygote --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 168268,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=zygote --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 168292,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=gpu-process --ozone-platform=x11 --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --gpu-preferences=UAAAAAAAAAAgAQAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAQAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --metrics-shmem-handle=4,i,14291354633910481643,18055200788384851693,262144 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190708988185955192"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 168294,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=ko --service-sandbox-type=none --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,7836721268434108173,2534075629378321517,524288 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190708989122997041"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 168333,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=ko --service-sandbox-type=utility --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,3168681090942917587,1204268745690437355,524288 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190708990060038890"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 168380,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=7 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=589519063107 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,6131905126289778400,11168932062671034045,2097152 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190708992871164437"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 169089,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=27 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=589684791832 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,4624929019749894894,12477991423886817075,2097152 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190709011612001417"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 170410,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=28 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=589790858030 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,13291627472248679665,13203884351156868339,2097152 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190709012549043266"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 170958,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=168256 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=30 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=590048335088 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,7877504004805935350,18085815758085373819,2097152 --field-trial-handle=3,i,8136406019311784934,13306688404112930324,262144 --variations-seed-version=20260922-010034.982000-production --pseudonymization-salt-handle=7,i,960379141699236878,18410453323037949261,4 --trace-process-track-uuid=3190709014423126964"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 602780,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --autoplay-policy=user-gesture-required --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --remote-debugging-pipe about:blank"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "0",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 602788,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=zygote --no-zygote-sandbox --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 602789,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=zygote --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 602792,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=zygote --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 602816,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=ko --service-sandbox-type=none --disable-dev-shm-usage --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,18353086658311813782,3541984021392675505,524288 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190708989122997041"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 602826,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=ko --service-sandbox-type=utility --disable-dev-shm-usage --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,3054957669694313200,16714299635387228149,524288 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190708990060038890"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 602854,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=renderer --top-chrome-webui --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --disable-dev-shm-usage --autoplay-policy=user-gesture-required --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --ozone-platform=x11 --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=5 --launch-time-ticks=1270468582259 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,18126389917559087960,16697235285450384184,1572864 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190708990997080739"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 602864,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=renderer --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --disable-dev-shm-usage --autoplay-policy=user-gesture-required --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --ozone-platform=x11 --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=6 --launch-time-ticks=1270468626491 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,13522746497196411964,1973721546285530015,1572864 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190708991934122588"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 602893,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=gpu-process --disable-dev-shm-usage --disable-breakpad --ozone-platform=x11 --enable-unsafe-swiftshader --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --gpu-preferences=YAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAASAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAA== --use-gl=angle --use-angle=swiftshader-webgl --shared-files --metrics-shmem-handle=4,i,10262696959898967737,5018343937365096411,262144 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190708994745248135"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 603195,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=renderer --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --disable-dev-shm-usage --autoplay-policy=user-gesture-required --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=18 --launch-time-ticks=1270655782480 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,11475536761231474068,17711566608298461222,1572864 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190709003178624776"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 603207,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=renderer --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --disable-dev-shm-usage --autoplay-policy=user-gesture-required --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=19 --launch-time-ticks=1270655868558 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,16093156521805925936,14230161299301017302,1572864 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190709004115666625"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 603235,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=renderer --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --disable-dev-shm-usage --autoplay-policy=user-gesture-required --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=22 --launch-time-ticks=1270660571620 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,12055397171720161404,5896616987405580444,1572864 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190709006926792172"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 603241,
|
||||
"arguments": [
|
||||
"/home/hermes/.local/opt/aribrowser/0.0.1/aribrowser/_internal/playwright/driver/package/.local-browsers/chromium-1243/chrome-linux64/chrome --type=renderer --crashpad-handler-pid=602782 --enable-crash-reporter=, --user-data-dir=/home/hermes/.aribrowser/neo-rdp-bundled/profiles/default --change-stack-guard-on-fork=enable --disable-dev-shm-usage --autoplay-policy=user-gesture-required --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --ozone-platform=x11 --disable-gpu-compositing --lang=ko --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=23 --launch-time-ticks=1270660583035 --shared-files=v8_context_snapshot_data:100 --metrics-shmem-handle=4,i,4936369833441987940,11161939525235037587,1572864 --field-trial-handle=3,i,18045517349782630742,10402729766613933435,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,17561646907599541801,5294123538028304638,4 --trace-process-track-uuid=3190709007863834021"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812223,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "0",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812238,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --headless --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812239,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812241,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812263,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=gpu-process --disable-dev-shm-usage --disable-breakpad --headless --ozone-platform=headless --use-angle=swiftshader-webgl --enable-unsafe-swiftshader --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --field-trial-handle=3,i,13494638045680039847,3486954602125472697,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,16997224032661951580,10055018774166276530,4 --trace-process-track-uuid=3190708988185955192"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812265,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13494638045680039847,3486954602125472697,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,16997224032661951580,10055018774166276530,4 --trace-process-track-uuid=3190708989122997041"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812266,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=en-US --service-sandbox-type=utility --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13494638045680039847,3486954602125472697,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,16997224032661951580,10055018774166276530,4 --trace-process-track-uuid=3190708990060038890"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812326,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=utility --utility-sub-type=audio.mojom.AudioService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13494638045680039847,3486954602125472697,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,16997224032661951580,10055018774166276530,4 --trace-process-track-uuid=3190708992871164437"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812430,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --disable-field-trial-config --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-edgeupdater --disable-extensions --disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,BlockOriginHeaderModificationOnRedirect,Translate,AutoDeElevate,OptimizationHints,NetworkTimeServiceQuerying,AimEnabled,msForceBrowserSignIn,msEdgeUpdateLaunchServicesPreferredVersion --enable-features=CDPScreenshotNewSurface --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-updater-scheduler --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --unsafely-disable-devtools-self-xss-warnings --edge-skip-compat-layer-relaunch --disable-infobars --disable-search-engine-choice-screen --disable-sync --enable-unsafe-swiftshader --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --remote-debugging-pipe --no-startup-window --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "0",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812445,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --headless --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812446,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812448,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=zygote --headless --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --no-first-run --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812469,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=gpu-process --disable-dev-shm-usage --disable-breakpad --headless --ozone-platform=headless --use-angle=swiftshader-webgl --enable-unsafe-swiftshader --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --gpu-preferences=UAAAAAAAAAAgAAAEAAAAAAAAAAAAAGAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --shared-files --field-trial-handle=3,i,3282514567985981525,17694286954722835909,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,13529691599339577712,4344651098216256134,4 --trace-process-track-uuid=3190708988185955192"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812471,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,3282514567985981525,17694286954722835909,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,13529691599339577712,4344651098216256134,4 --trace-process-track-uuid=3190708989122997041"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812472,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=en-US --service-sandbox-type=utility --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,3282514567985981525,17694286954722835909,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,13529691599339577712,4344651098216256134,4 --trace-process-track-uuid=3190708990060038890"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812544,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=utility --utility-sub-type=audio.mojom.AudioService --lang=en-US --service-sandbox-type=none --disable-dev-shm-usage --use-angle=swiftshader-webgl --mute-audio --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,3282514567985981525,17694286954722835909,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,13529691599339577712,4344651098216256134,4 --trace-process-track-uuid=3190708993808206286"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "0",
|
||||
"Seccomp_filters": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812677,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --disable-gpu-compositing --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=15 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1455970234135 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13494638045680039847,3486954602125472697,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,16997224032661951580,10055018774166276530,4 --trace-process-track-uuid=3190709000367499229"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812678,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=812230 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-gtleAO --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --disable-gpu-compositing --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=14 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1455970235495 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13494638045680039847,3486954602125472697,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,16997224032661951580,10055018774166276530,4 --trace-process-track-uuid=3190708999430457380"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812734,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --disable-gpu-compositing --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=14 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1455979221844 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,3282514567985981525,17694286954722835909,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,13529691599339577712,4344651098216256134,4 --trace-process-track-uuid=3190708999430457380"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pid": 812735,
|
||||
"arguments": [
|
||||
"/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=812437 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/playwright_chromiumdev_profile-PduMnR --change-stack-guard-on-fork=enable --disable-dev-shm-usage --disable-back-forward-cache --disable-background-timer-throttling --disable-breakpad --force-color-profile=srgb --remote-debugging-pipe --allow-pre-commit-input --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --ozone-platform=headless --disable-gpu-compositing --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=13 --time-ticks-at-unix-epoch=-1790509733151410 --launch-time-ticks=1455979223511 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,3282514567985981525,17694286954722835909,262144 --enable-features=CDPScreenshotNewSurface --disable-features=AimEnabled,AutoDeElevate,AvoidUnnecessaryBeforeUnloadCheckSync,BlockOriginHeaderModificationOnRedirect,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,NetworkTimeServiceQuerying,OptimizationHints,PaintHolding,ThirdPartyStoragePartitioning,Translate,msEdgeUpdateLaunchServicesPreferredVersion,msForceBrowserSignIn --variations-seed-version --pseudonymization-salt-handle=7,i,13529691599339577712,4344651098216256134,4 --trace-process-track-uuid=3190708998493415531"
|
||||
],
|
||||
"status": {
|
||||
"NoNewPrivs": "1",
|
||||
"Seccomp": "2",
|
||||
"Seccomp_filters": "1"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"File:1 minute at the alexa mall in berlin.ogg": {
|
||||
"url": "https://upload.wikimedia.org/wikipedia/commons/f/fd/1_minute_at_the_alexa_mall_in_berlin.ogg?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original",
|
||||
"size": 1666896,
|
||||
"mime": "application/ogg",
|
||||
"artist": "thore",
|
||||
"license": "Public domain",
|
||||
"license_url": "",
|
||||
"credit": "http://www.pdsounds.org/audio/download/407/1+Minute+Alexa+in+Berlin-2-rolltreppe.mp3\n\nPDSounds description: http://www.pdsounds.org/sounds/1_minute_at_the_alexa_mall_in_berlin\nTransferred by Fæ",
|
||||
"description": "\nTitle 1 minute at the alexa mall in Berlin\nArtist thore\nOriginal mp3 data Length:1:00 minutes (1.61 MB) Format:MP3 Stereo 44kHz 224Kbps (CBR)\nUser tags big, Crowd, escalator, Mall, murmuring, shopping, talking, walking\nType Natural, Characteristic\nPDSounds record number 407\nComment Recorded in the Alexa shopping mall, Berlin, 2nd (Food) Floor at 13:30 on a monday. Typical german mall ambience. I placed the Zoom H2 on the ground with the built-in back mics (120 degrees radius) activated and focu"
|
||||
},
|
||||
"File:Cafe ambiance.ogg": {
|
||||
"url": "https://upload.wikimedia.org/wikipedia/commons/5/54/Cafe_ambiance.ogg?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original",
|
||||
"size": 19947952,
|
||||
"mime": "application/ogg",
|
||||
"artist": "Marble Toast",
|
||||
"license": "CC0",
|
||||
"license_url": "http://creativecommons.org/publicdomain/zero/1.0/deed.en",
|
||||
"credit": "Own work",
|
||||
"description": "The gentle back ground sound of a cafe with people chatting"
|
||||
},
|
||||
"File:Italia Palermo mercato-Ballaro 20161225 122421.ogg": {
|
||||
"url": "https://upload.wikimedia.org/wikipedia/commons/e/e8/Italia_Palermo_mercato-Ballaro_20161225_122421.ogg?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original",
|
||||
"size": 622200,
|
||||
"mime": "application/ogg",
|
||||
"artist": "Marie Flutre",
|
||||
"license": "CC BY-SA 4.0",
|
||||
"license_url": "https://creativecommons.org/licenses/by-sa/4.0",
|
||||
"credit": "Own work",
|
||||
"description": "Morning market ambience sound in Ballarò (Palermo)."
|
||||
},
|
||||
"File:Sunday in the city street noise2.ogg": {
|
||||
"url": "https://upload.wikimedia.org/wikipedia/commons/2/24/Sunday_in_the_city_street_noise2.ogg?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original",
|
||||
"size": 3414104,
|
||||
"mime": "application/ogg",
|
||||
"artist": "cori",
|
||||
"license": "Public domain",
|
||||
"license_url": "",
|
||||
"credit": "http://www.pdsounds.org/audio/download/531/sunday-afternoon2.mp3\n\nPDSounds description: http://www.pdsounds.org/sounds/sunday_in_the_city_street_noise2\nTransferred by Fæ",
|
||||
"description": "\nTitle Sunday, 4th May 2008 5.05pm - sounds outside my window\nArtist cori\nOriginal mp3 data Length:4:24 minutes (4.03 MB) Format:MP3 Mono 44kHz 128Kbps (CBR)\nUser tags Bird flying, cars, City noise, Coast, England, flapping, gulls, Pigeons, seagulls, Seaside, Street noise\nType Collage, Natural\nPDSounds record number 531\nComment Sunday, 4th May 2008 5.05pm. English city-by-the-sea noises: cars, vans & mopeds driving in the street outside, seagulls calling, wood pigeons cooing and flying past"
|
||||
},
|
||||
"File:TTC Subway Line 1 Ambience - Museum to Union (Freesound).ogg": {
|
||||
"url": "https://upload.wikimedia.org/wikipedia/commons/d/d3/TTC_Subway_Line_1_Ambience_-_Museum_to_Union_%28Freesound%29.ogg?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original",
|
||||
"size": 3343901,
|
||||
"mime": "application/ogg",
|
||||
"artist": "PascalHD",
|
||||
"license": "CC BY 4.0",
|
||||
"license_url": "https://creativecommons.org/licenses/by/4.0",
|
||||
"credit": "https://freesound.org/people/PascalHD/sounds/828232/",
|
||||
"description": "TTC Subway train ride from Museum to Union. Ambience, including next station announcements. Recorded with iPhone 14 Pro Max, on September 13 2025. Please credit PascalHD if used elsewhere."
|
||||
},
|
||||
"File:Urban Street on a Rainy Afternoon.flac": {
|
||||
"url": "https://upload.wikimedia.org/wikipedia/commons/8/8c/Urban_Street_on_a_Rainy_Afternoon.flac?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=original",
|
||||
"size": 91187572,
|
||||
"mime": "audio/x-flac",
|
||||
"artist": "Extemporalist",
|
||||
"license": "CC0",
|
||||
"license_url": "http://creativecommons.org/publicdomain/zero/1.0/deed.en",
|
||||
"credit": "Own work",
|
||||
"description": "Moderate traffic on a 2 lane urban street in Kelowna on a rainy afternoon. Percussive sounds of raindrops on hard surfaces in foreground. Crows in the background."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"node": "v26.7.0",
|
||||
"npm": "11.19.0",
|
||||
"python": "3.11.16",
|
||||
"chrome": "Google Chrome 146.0.7680.80",
|
||||
"ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers",
|
||||
"head": "c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5",
|
||||
"branch": "feat/v0.2.3",
|
||||
"worktree": "/home/hermes/worktrees/find-word-v0.2.3",
|
||||
"os": "Linux-6.8.0-142-generic-x86_64-with-glibc2.39"
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
git diff --check: exit 0
|
||||
HEAD: c92660b514f7af8eb556d3fa5c0fc80e4bdd4cf5
|
||||
branch: feat/v0.2.3
|
||||
Tracked historical files changed: 0
|
||||
Large original recordings in public/dist: 0
|
||||
Changed/untracked worktree paths:
|
||||
M LICENSE
|
||||
M README.md
|
||||
M docs/ARCHITECTURE.md
|
||||
M docs/AUDIO_PROVENANCE.md
|
||||
M docs/DEPLOYMENT.md
|
||||
M docs/WORDS.md
|
||||
M index.html
|
||||
M package-lock.json
|
||||
M package.json
|
||||
M public/audio/manifest.json
|
||||
M scripts/check-build.mjs
|
||||
M src/App.tsx
|
||||
M src/audio/assets.ts
|
||||
M src/audio/dsp.ts
|
||||
M src/audio/engine.ts
|
||||
M src/content.ts
|
||||
M src/game.ts
|
||||
M src/styles.css
|
||||
M tests/App.test.tsx
|
||||
M tests/assets.test.ts
|
||||
M tests/audio-requests.test.ts
|
||||
M tests/audio.test.ts
|
||||
M tests/browser/audio.spec.ts
|
||||
M tests/browser/game.spec.ts
|
||||
M tests/browser/release.spec.ts
|
||||
M tests/browser/ui.spec.ts
|
||||
M tests/build.test.ts
|
||||
M tests/content.test.ts
|
||||
M tests/dsp.test.ts
|
||||
M tests/game.test.ts
|
||||
M tests/generator.test.ts
|
||||
M tests/neural-release.test.ts
|
||||
M tests/release.test.ts
|
||||
M vite.config.ts
|
||||
?? .agent/ACCEPTANCE-v0.2.3.md
|
||||
?? .agent/AMBIENCE-SOURCES-v0.2.3.json
|
||||
?? .agent/RESULT-v0.2.3.md
|
||||
?? .agent/TASK-v0.2.3.md
|
||||
?? .agent/evidence-v0.2.3/
|
||||
?? CHANGELOG.md
|
||||
?? public/AMBIENCE_NOTICES.md
|
||||
?? public/ambience/
|
||||
?? scripts/ambience_audio.py
|
||||
?? tests/ambience.test.ts
|
||||
?? tests/browser/rounds.spec.ts
|
||||
?? tests/python/test_ambience_audio.py
|
||||
Final build: 22-build.log; lint: 22-lint.log; unit: 22-full-test.log; browser: 22-browser.log
|
||||
Report links valid; 8 final screenshots; 109/109 WAVs decoded on each viewport; runtime/page errors, failed requests, external requests = 0.
|
||||
Final git diff --check: exit 0; HEAD unchanged; historical tracked .agent paths unchanged; secret scan 0 findings.
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"verifiedAtUtc": "2026-10-14",
|
||||
"sources": [
|
||||
{
|
||||
"environmentId": "street",
|
||||
"pageUrl": "https://commons.wikimedia.org/wiki/File:Sunday_in_the_city_street_noise2.ogg",
|
||||
"directUrl": "https://upload.wikimedia.org/wikipedia/commons/2/24/Sunday_in_the_city_street_noise2.ogg",
|
||||
"creator": "cori (Cori Samuel)",
|
||||
"license": "Public domain (PD-author)",
|
||||
"licenseUrl": "https://commons.wikimedia.org/wiki/Template:PD-author",
|
||||
"verification": "Primary Commons API metadata verified during source preparation (preserved commons-license-audit.json); primary cafe/rain pages re-read 2026-10-14.",
|
||||
"alternateUsed": false
|
||||
},
|
||||
{
|
||||
"environmentId": "mall",
|
||||
"pageUrl": "https://commons.wikimedia.org/wiki/File:1_minute_at_the_alexa_mall_in_berlin.ogg",
|
||||
"directUrl": "https://upload.wikimedia.org/wikipedia/commons/f/fd/1_minute_at_the_alexa_mall_in_berlin.ogg",
|
||||
"creator": "thore (Thore)",
|
||||
"license": "Public domain (PD-author)",
|
||||
"licenseUrl": "https://commons.wikimedia.org/wiki/Template:PD-author",
|
||||
"verification": "Primary Commons API metadata verified during source preparation (preserved commons-license-audit.json); primary cafe/rain pages re-read 2026-10-14.",
|
||||
"alternateUsed": false
|
||||
},
|
||||
{
|
||||
"environmentId": "theater",
|
||||
"pageUrl": "https://freesound.org/people/ElevatorFan2020/sounds/853576/",
|
||||
"directUrl": "https://cdn.freesound.org/previews/853/853576_14269391-lq.mp3",
|
||||
"creator": "ElevatorFan2020",
|
||||
"license": "CC0 1.0 Universal",
|
||||
"licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
|
||||
"verification": "Freesound primary page re-read 2026-10-14: creator, authentic field recording description and Creative Commons 0 link confirmed. Download is the specified preview MP3.",
|
||||
"alternateUsed": false
|
||||
},
|
||||
{
|
||||
"environmentId": "department",
|
||||
"pageUrl": "https://freesound.org/people/icmusic/sounds/268941/",
|
||||
"directUrl": "https://cdn.freesound.org/previews/268/268941_40107-lq.mp3",
|
||||
"creator": "icmusic",
|
||||
"license": "CC0 1.0 Universal",
|
||||
"licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
|
||||
"verification": "Freesound primary page re-read 2026-10-14: creator, authentic field recording description and Creative Commons 0 link confirmed. Download is the specified preview MP3.",
|
||||
"alternateUsed": false
|
||||
},
|
||||
{
|
||||
"environmentId": "market",
|
||||
"pageUrl": "https://commons.wikimedia.org/wiki/File:Italia_Palermo_mercato-Ballaro_20161225_122421.ogg",
|
||||
"directUrl": "https://upload.wikimedia.org/wikipedia/commons/e/e8/Italia_Palermo_mercato-Ballaro_20161225_122421.ogg",
|
||||
"creator": "Marie Flutre (Wikimedia user Timflutre)",
|
||||
"license": "CC BY-SA 4.0",
|
||||
"licenseUrl": "https://creativecommons.org/licenses/by-sa/4.0/",
|
||||
"verification": "Primary Commons API metadata verified during source preparation (preserved commons-license-audit.json); primary cafe/rain pages re-read 2026-10-14.",
|
||||
"alternateUsed": false
|
||||
},
|
||||
{
|
||||
"environmentId": "subway",
|
||||
"pageUrl": "https://commons.wikimedia.org/wiki/File:TTC_Subway_Line_1_Ambience_-_Museum_to_Union_(Freesound).ogg",
|
||||
"directUrl": "https://upload.wikimedia.org/wikipedia/commons/d/d3/TTC_Subway_Line_1_Ambience_-_Museum_to_Union_%28Freesound%29.ogg",
|
||||
"creator": "PascalHD",
|
||||
"license": "CC BY 4.0",
|
||||
"licenseUrl": "https://creativecommons.org/licenses/by/4.0/",
|
||||
"verification": "Primary Commons API metadata verified during source preparation (preserved commons-license-audit.json); primary cafe/rain pages re-read 2026-10-14.",
|
||||
"alternateUsed": false
|
||||
},
|
||||
{
|
||||
"environmentId": "cafe",
|
||||
"pageUrl": "https://commons.wikimedia.org/wiki/File:Cafe_ambiance.ogg",
|
||||
"directUrl": "https://upload.wikimedia.org/wikipedia/commons/5/54/Cafe_ambiance.ogg",
|
||||
"creator": "Marble Toast",
|
||||
"license": "CC0 1.0 Universal",
|
||||
"licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
|
||||
"verification": "Primary Commons API metadata verified during source preparation (preserved commons-license-audit.json); primary cafe/rain pages re-read 2026-10-14.",
|
||||
"alternateUsed": false
|
||||
},
|
||||
{
|
||||
"environmentId": "rain",
|
||||
"pageUrl": "https://commons.wikimedia.org/wiki/File:Urban_Street_on_a_Rainy_Afternoon.flac",
|
||||
"directUrl": "https://upload.wikimedia.org/wikipedia/commons/8/8c/Urban_Street_on_a_Rainy_Afternoon.flac",
|
||||
"creator": "Extemporalist",
|
||||
"license": "CC0 1.0 Universal",
|
||||
"licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
|
||||
"verification": "Primary Commons API metadata verified during source preparation (preserved commons-license-audit.json); primary cafe/rain pages re-read 2026-10-14.",
|
||||
"alternateUsed": false
|
||||
}
|
||||
],
|
||||
"rightsPagesReviewed": [
|
||||
"https://creativecommons.org/licenses/by/4.0/",
|
||||
"https://creativecommons.org/licenses/by-sa/4.0/"
|
||||
],
|
||||
"notes": "CC BY permits sharing/adaptation with attribution and change indication. CC BY-SA derivative retains same license. All eight original URLs retained. No alternate source."
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
$ npx vitest run tests/ambience.test.ts tests/build.test.ts
|
||||
Started UTC: 2026-10-14T09:08:40.941366+00:00
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/ambience.test.ts (3 tests | 1 failed) 484ms
|
||||
× 선택 구간은 승인 계획의 불변 provenance이며 manifest와 고지에 동일하게 남는다 12ms
|
||||
❯ tests/build.test.ts (30 tests | 3 failed) 18875ms
|
||||
× 현장음 manifest 사본을 함께 바꿔도 승인 selectedSegmentStartSeconds 계약 위반을 거부한다 449ms
|
||||
× 현장음 manifest 사본을 함께 바꿔도 승인 startSeconds 계약 위반을 거부한다 436ms
|
||||
× 현장음 manifest 사본을 함께 바꿔도 승인 durationSeconds 계약 위반을 거부한다 443ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 4 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/ambience.test.ts > 선택 구간은 승인 계획의 불변 provenance이며 manifest와 고지에 동일하게 남는다
|
||||
AssertionError: expected { street: undefined, …(7) } to deeply equal { street: 35, mall: 36, …(6) }
|
||||
|
||||
- Expected
|
||||
+ Received
|
||||
|
||||
{
|
||||
- "cafe": 180,
|
||||
- "department": 90,
|
||||
- "mall": 36,
|
||||
- "market": 60,
|
||||
- "rain": 180,
|
||||
- "street": 35,
|
||||
- "subway": 65,
|
||||
- "theater": 45,
|
||||
+ "cafe": undefined,
|
||||
+ "department": undefined,
|
||||
+ "mall": undefined,
|
||||
+ "market": undefined,
|
||||
+ "rain": undefined,
|
||||
+ "street": undefined,
|
||||
+ "subway": undefined,
|
||||
+ "theater": undefined,
|
||||
}
|
||||
|
||||
❯ tests/ambience.test.ts:141:65
|
||||
139| market: 60, subway: 65, cafe: 180, rain: 180 };
|
||||
140| expect(Object.fromEntries(plan.assets.map((asset: { environmentId: s…
|
||||
141| [asset.environmentId, asset.selectedSegmentStartSeconds]))).toEqua…
|
||||
| ^
|
||||
142| for (const asset of plan.assets) {
|
||||
143| const start = asset.selectedSegmentStartSeconds;
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/4]⎯
|
||||
|
||||
FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 selectedSegmentStartSeconds 계약 위반을 거부한다
|
||||
FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 startSeconds 계약 위반을 거부한다
|
||||
FAIL tests/build.test.ts > 현장음 manifest 사본을 함께 바꿔도 승인 durationSeconds 계약 위반을 거부한다
|
||||
AssertionError: expected [Function verify] to throw an error
|
||||
❯ tests/build.test.ts:316:22
|
||||
314| JSON.stringify(manifest),
|
||||
315| );
|
||||
316| expect(verify).toThrow();
|
||||
| ^
|
||||
317| } finally {
|
||||
318| rmSync(temporary, { recursive: true, force: true });
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/4]⎯
|
||||
|
||||
|
||||
Test Files 2 failed (2)
|
||||
Tests 4 failed | 29 passed (33)
|
||||
Start at 09:08:41
|
||||
Duration 19.25s (tests 98%, setup 2%)
|
||||
|
||||
|
||||
Exit code: 1
|
||||
Finished UTC: 2026-10-14T09:09:00.972768+00:00
|
||||
@@ -0,0 +1,29 @@
|
||||
$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -v
|
||||
Started UTC: 2026-10-14T09:10:26.182138+00:00
|
||||
test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility)
|
||||
스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok
|
||||
test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing)
|
||||
무음을 정상 현장 녹음으로 포장하지 않는다. ... ok
|
||||
test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) ... ok
|
||||
test_atomic_success_removes_stale_files_and_stages_notice_on_same_filesystem (test_ambience_audio.AtomicPublication.test_atomic_success_removes_stale_files_and_stages_notice_on_same_filesystem) ... ok
|
||||
test_conversion_cannot_override_approved_segment (test_ambience_audio.AtomicPublication.test_conversion_cannot_override_approved_segment) ... ok
|
||||
test_conversion_failure_and_keyboard_interrupt_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_conversion_failure_and_keyboard_interrupt_preserve_prior_directory) ... ok
|
||||
test_exchange_failure_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_exchange_failure_preserves_prior_directory) ... ok
|
||||
test_first_publication_and_real_exchange (test_ambience_audio.AtomicPublication.test_first_publication_and_real_exchange) ... ok
|
||||
test_manifest_and_notice_write_failures_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_manifest_and_notice_write_failures_preserve_prior_directory) ... ok
|
||||
test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice (test_ambience_audio.AtomicPublication.test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice) ... ok
|
||||
test_readers_observe_whole_directory_during_real_exchange (test_ambience_audio.AtomicPublication.test_readers_observe_whole_directory_during_real_exchange) ... ok
|
||||
test_sigterm_before_commit_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_sigterm_before_commit_preserves_prior_directory) ... ok
|
||||
test_staged_manifest_notice_and_inventory_tampering_are_rejected (test_ambience_audio.AtomicPublication.test_staged_manifest_notice_and_inventory_tampering_are_rejected) ... ok
|
||||
test_symlink_output_is_rejected_before_conversion (test_ambience_audio.AtomicPublication.test_symlink_output_is_rejected_before_conversion) ... ok
|
||||
test_unsupported_atomic_exchange_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_unsupported_atomic_exchange_preserves_prior_directory) ... ok
|
||||
test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) ... ok
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) ... ok
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 17 tests in 6.237s
|
||||
|
||||
OK
|
||||
|
||||
Exit code: 0
|
||||
Finished UTC: 2026-10-14T09:10:32.496266+00:00
|
||||
@@ -0,0 +1,317 @@
|
||||
$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -v
|
||||
Started UTC: 2026-10-14T09:08:40.965664+00:00
|
||||
test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility)
|
||||
스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok
|
||||
test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing)
|
||||
무음을 정상 현장 녹음으로 포장하지 않는다. ... ok
|
||||
test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) ... ok
|
||||
test_atomic_success_removes_stale_files_and_stages_notice_on_same_filesystem (test_ambience_audio.AtomicPublication.test_atomic_success_removes_stale_files_and_stages_notice_on_same_filesystem) ... ok
|
||||
test_conversion_cannot_override_approved_segment (test_ambience_audio.AtomicPublication.test_conversion_cannot_override_approved_segment) ... ok
|
||||
test_conversion_failure_and_keyboard_interrupt_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_conversion_failure_and_keyboard_interrupt_preserve_prior_directory) ... ok
|
||||
test_exchange_failure_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_exchange_failure_preserves_prior_directory) ... ok
|
||||
test_first_publication_and_real_exchange (test_ambience_audio.AtomicPublication.test_first_publication_and_real_exchange) ... ok
|
||||
test_manifest_and_notice_write_failures_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_manifest_and_notice_write_failures_preserve_prior_directory) ... ok
|
||||
test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice (test_ambience_audio.AtomicPublication.test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice) ... FAIL
|
||||
test_readers_observe_whole_directory_during_real_exchange (test_ambience_audio.AtomicPublication.test_readers_observe_whole_directory_during_real_exchange) ... ok
|
||||
test_sigterm_before_commit_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_sigterm_before_commit_preserves_prior_directory) ... ok
|
||||
test_staged_manifest_notice_and_inventory_tampering_are_rejected (test_ambience_audio.AtomicPublication.test_staged_manifest_notice_and_inventory_tampering_are_rejected) ... ok
|
||||
test_symlink_output_is_rejected_before_conversion (test_ambience_audio.AtomicPublication.test_symlink_output_is_rejected_before_conversion) ... ok
|
||||
test_unsupported_atomic_exchange_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_unsupported_atomic_exchange_preserves_prior_directory) ... ok
|
||||
test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) ... ok
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) ...
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=None) ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=-1) ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=True) ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value='36') ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=nan) ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=inf) ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=1788.001) ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=None) ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=0) ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=True) ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value='1800') ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=nan) ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=inf) ... FAIL
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=191.999) ... FAIL
|
||||
|
||||
======================================================================
|
||||
FAIL: test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice (test_ambience_audio.AtomicPublication.test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 184, in test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice
|
||||
self.assertEqual(call.args[2], start)
|
||||
AssertionError: 35 != 1.25
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=None)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=-1)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=True)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value='36')
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=nan)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=inf)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='selectedSegmentStartSeconds', value=1788.001)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=None)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=0)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=True)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value='1800')
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=nan)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=inf)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
======================================================================
|
||||
FAIL: test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) (key='directMediaDurationSeconds', value=191.999)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 106, in test_invalid_segment_plan_fails_before_any_conversion_without_mutation
|
||||
audio.generate(plan, self.sources, self.output, converter=self.converter)
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 205, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, SEGMENTS[environment])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1124, in __call__
|
||||
return self._mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1128, in _mock_call
|
||||
return self._execute_mock_call(*args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/.local/share/uv/python/cpython-3.11.16-linux-x86_64-gnu/lib/python3.11/unittest/mock.py", line 1183, in _execute_mock_call
|
||||
raise effect
|
||||
AssertionError: conversion must not begin
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 17 tests in 7.982s
|
||||
|
||||
FAILED (failures=15)
|
||||
|
||||
Exit code: 1
|
||||
Finished UTC: 2026-10-14T09:08:49.067756+00:00
|
||||
@@ -0,0 +1,78 @@
|
||||
$ env CHROME_PATH=/usr/bin/google-chrome PLAYWRIGHT_NO_SANDBOX=0 npx playwright test tests/browser/audio.spec.ts --reporter=line --output=.agent/evidence-v0.2.3/privacy-screening/browser-red
|
||||
Started UTC: 2026-10-14T09:09:12.510065+00:00
|
||||
[WebServer] (node:1044973) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
|
||||
Running 2 tests using 2 workers
|
||||
|
||||
(node:1044995) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
|
||||
(node:1044996) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.
|
||||
(Use `node --trace-warnings ...` to show where the warning was created)
|
||||
|
||||
|
||||
[1/2] [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||
[2/2] [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||
1) [desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||
|
||||
Error: expect(received).toBe(expected) // Object.is equality
|
||||
|
||||
Expected: true
|
||||
Received: false
|
||||
|
||||
35 | for (const asset of plan.assets) {
|
||||
36 | const start = asset.selectedSegmentStartSeconds;
|
||||
> 37 | expect(Number.isFinite(start)).toBe(true);
|
||||
| ^
|
||||
38 | expect(start).toBeGreaterThanOrEqual(0);
|
||||
39 | expect(start + 12).toBeLessThanOrEqual(asset.directMediaDurationSeconds);
|
||||
40 | const entry = published.manifest.files.find((e: { environmentId: string }) => e.environmentId === asset.environmentId);
|
||||
at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:37:36
|
||||
|
||||
Error Context: .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/error-context.md
|
||||
|
||||
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
|
||||
.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip
|
||||
Usage:
|
||||
|
||||
npx playwright show-trace .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-desktop/trace.zip
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
2) [mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||
|
||||
Error: expect(received).toBe(expected) // Object.is equality
|
||||
|
||||
Expected: true
|
||||
Received: false
|
||||
|
||||
35 | for (const asset of plan.assets) {
|
||||
36 | const start = asset.selectedSegmentStartSeconds;
|
||||
> 37 | expect(Number.isFinite(start)).toBe(true);
|
||||
| ^
|
||||
38 | expect(start).toBeGreaterThanOrEqual(0);
|
||||
39 | expect(start + 12).toBeLessThanOrEqual(asset.directMediaDurationSeconds);
|
||||
40 | const entry = published.manifest.files.find((e: { environmentId: string }) => e.environmentId === asset.environmentId);
|
||||
at /home/hermes/worktrees/find-word-v0.2.3/tests/browser/audio.spec.ts:37:36
|
||||
|
||||
Error Context: .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/error-context.md
|
||||
|
||||
attachment #2: trace (application/zip) ─────────────────────────────────────────────────────────
|
||||
.agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip
|
||||
Usage:
|
||||
|
||||
npx playwright show-trace .agent/evidence-v0.2.3/privacy-screening/browser-red/audio-음성·현장음-109개-versioned-WAV를-실제-Chrome에서-해시·디코드-검증한다-mobile/trace.zip
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
2 failed
|
||||
[desktop] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||
[mobile] › tests/browser/audio.spec.ts:7:1 › 음성·현장음 109개 versioned WAV를 실제 Chrome에서 해시·디코드 검증한다
|
||||
|
||||
Exit code: 1
|
||||
Finished UTC: 2026-10-14T09:09:15.754298+00:00
|
||||
@@ -0,0 +1,44 @@
|
||||
$ npx vitest run tests/ambience.test.ts -t '최종 ASR|101개 음성'
|
||||
Started UTC: 2026-10-14T09:09:47.813802+00:00
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
❯ tests/ambience.test.ts (5 tests | 2 failed | 3 skipped) 103ms
|
||||
× 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다 6ms
|
||||
× 101개 음성·다섯 현장음 및 이전 evidence 바이트를 보존한다 96ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL tests/ambience.test.ts > 최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다
|
||||
Error: ENOENT: no such file or directory, open '.agent/evidence-v0.2.3/privacy-screening/final-asr.json'
|
||||
❯ tests/ambience.test.ts:158:32
|
||||
156| it("최종 ASR 증거는 정확한 WAV와 연결되며 청취·법적 인수로 주장하지 않는다", () => {
|
||||
157| const directory = ".agent/evidence-v0.2.3/privacy-screening";
|
||||
158| const screening = JSON.parse(readFileSync(`${directory}/final-asr.js…
|
||||
| ^
|
||||
159| const manifest = JSON.parse(readFileSync("public/ambience/manifest.j…
|
||||
160| expect(screening.tool).toMatchObject({ name: "faster-whisper", versi…
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯
|
||||
|
||||
FAIL tests/ambience.test.ts > 101개 음성·다섯 현장음 및 이전 evidence 바이트를 보존한다
|
||||
AssertionError: expected '8db06f3f09bbd8409573ba4874c7ccdd1e7e8…' not to be '8db06f3f09bbd8409573ba4874c7ccdd1e7e8…' // Object.is equality
|
||||
❯ tests/ambience.test.ts:192:26
|
||||
190| const actual = createHash("sha256").update(readFileSync(path)).dig…
|
||||
191| if (/public\/ambience\/(mall|market|cafe)\.wav$/.test(path)) {
|
||||
192| expect(actual).not.toBe(before);
|
||||
| ^
|
||||
193| changedAmbience++;
|
||||
194| } else {
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 2 failed | 3 skipped (5)
|
||||
Start at 09:09:48
|
||||
Duration 400ms (tests 39%, setup 39%, transform 17%, import 4%, worker 2%)
|
||||
|
||||
|
||||
Exit code: 1
|
||||
Finished UTC: 2026-10-14T09:09:48.821996+00:00
|
||||
@@ -0,0 +1,16 @@
|
||||
$ python3 .agent/evidence-v0.2.3/privacy-screening/regenerate.py
|
||||
Started UTC: 2026-10-14T09:10:56.998337+00:00
|
||||
All eight source SHA-256, byte counts and direct-media durations match before conversion.
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/regenerate.py", line 28, in <module>
|
||||
manifest = audio.generate(plan, source_directory, ROOT / 'public/ambience')
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 218, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, asset["selectedSegmentStartSeconds"])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 51, in convert
|
||||
raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.")
|
||||
ValueError: 원본 구간이 잘렸거나 PCM이 올바르지 않습니다.
|
||||
|
||||
Exit code: 1
|
||||
Finished UTC: 2026-10-14T09:10:59.192835+00:00
|
||||
@@ -0,0 +1,11 @@
|
||||
$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v
|
||||
Started UTC: 2026-10-14T09:12:50.105600+00:00
|
||||
test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating) ... ok
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 1 test in 0.870s
|
||||
|
||||
OK
|
||||
|
||||
Exit code: 0
|
||||
Finished UTC: 2026-10-14T09:12:51.044884+00:00
|
||||
@@ -0,0 +1,22 @@
|
||||
$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v
|
||||
Started UTC: 2026-10-14T09:12:09.721189+00:00
|
||||
test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating) ... ERROR
|
||||
|
||||
======================================================================
|
||||
ERROR: test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 69, in test_short_input_seek_retries_full_decode_without_padding_or_truncating
|
||||
actual = audio.convert(source, target, 1)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 51, in convert
|
||||
raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.")
|
||||
ValueError: 원본 구간이 잘렸거나 PCM이 올바르지 않습니다.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 1 test in 0.428s
|
||||
|
||||
FAILED (errors=1)
|
||||
|
||||
Exit code: 1
|
||||
Finished UTC: 2026-10-14T09:12:10.217535+00:00
|
||||
@@ -0,0 +1,22 @@
|
||||
$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v
|
||||
Started UTC: 2026-10-14T09:12:26.719654+00:00
|
||||
test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating) ... ERROR
|
||||
|
||||
======================================================================
|
||||
ERROR: test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 69, in test_short_input_seek_retries_full_decode_without_padding_or_truncating
|
||||
actual = audio.convert(source, target, 1)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 51, in convert
|
||||
raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.")
|
||||
ValueError: 원본 구간이 잘렸거나 PCM이 올바르지 않습니다.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 1 test in 0.452s
|
||||
|
||||
FAILED (errors=1)
|
||||
|
||||
Exit code: 1
|
||||
Finished UTC: 2026-10-14T09:12:27.241604+00:00
|
||||
@@ -0,0 +1,16 @@
|
||||
$ python3 .agent/evidence-v0.2.3/privacy-screening/regenerate.py
|
||||
Started UTC: 2026-10-14T09:13:03.668086+00:00
|
||||
All eight source SHA-256, byte counts and direct-media durations match before conversion.
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/.agent/evidence-v0.2.3/privacy-screening/regenerate.py", line 28, in <module>
|
||||
manifest = audio.generate(plan, source_directory, ROOT / 'public/ambience')
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 227, in generate
|
||||
info = converter(source_path(source_directory, environment), ready / name, asset["selectedSegmentStartSeconds"])
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/scripts/ambience_audio.py", line 59, in convert
|
||||
raise ValueError("원본 구간이 잘렸거나 PCM이 올바르지 않습니다.")
|
||||
ValueError: 원본 구간이 잘렸거나 PCM이 올바르지 않습니다.
|
||||
|
||||
Exit code: 1
|
||||
Finished UTC: 2026-10-14T09:13:06.976084+00:00
|
||||
@@ -0,0 +1,11 @@
|
||||
$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v
|
||||
Started UTC: 2026-10-14T09:16:00.065794+00:00
|
||||
test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating) ... ok
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 1 test in 0.813s
|
||||
|
||||
OK
|
||||
|
||||
Exit code: 0
|
||||
Finished UTC: 2026-10-14T09:16:00.949585+00:00
|
||||
@@ -0,0 +1,22 @@
|
||||
$ python3 -m unittest discover -s tests/python -p test_ambience_audio.py -k short_input_seek -v
|
||||
Started UTC: 2026-10-14T09:15:41.642570+00:00
|
||||
test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating) ... FAIL
|
||||
|
||||
======================================================================
|
||||
FAIL: test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/hermes/worktrees/find-word-v0.2.3/tests/python/test_ambience_audio.py", line 71, in test_short_input_seek_retries_full_decode_without_padding_or_truncating
|
||||
self.assertEqual(actual["conversion"]["seekMethod"], "full decode then sample trim")
|
||||
AssertionError: 'full decode then output seek' != 'full decode then sample trim'
|
||||
- full decode then output seek
|
||||
+ full decode then sample trim
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 1 test in 0.697s
|
||||
|
||||
FAILED (failures=1)
|
||||
|
||||
Exit code: 1
|
||||
Finished UTC: 2026-10-14T09:15:42.409368+00:00
|
||||
@@ -0,0 +1,260 @@
|
||||
$ python3 .agent/evidence-v0.2.3/privacy-screening/regenerate.py
|
||||
Started UTC: 2026-10-14T09:16:15.875217+00:00
|
||||
All eight source SHA-256, byte counts and direct-media durations match before conversion.
|
||||
{
|
||||
"completedAtUtc": "2026-10-14T09:16:20.220194+00:00",
|
||||
"method": "ambience_audio.generate: source preflight, full staged bundle validation, atomic directory exchange",
|
||||
"allSourcesMatchedBeforeConversion": true,
|
||||
"planUnmodified": true,
|
||||
"sources": [
|
||||
{
|
||||
"environmentId": "street",
|
||||
"sha256": "0ddb0be7eb3427f781c8268bcbc74b8ad7e1fbf75b9f6966e65274dbe85f3d9d",
|
||||
"bytes": 3414104,
|
||||
"directMediaDurationSeconds": 264.254694,
|
||||
"selectedSegmentStartSeconds": 35
|
||||
},
|
||||
{
|
||||
"environmentId": "mall",
|
||||
"sha256": "bb066e130e5d665db57cb5f88e820d053c724d8f777b275213998d2074c6529a",
|
||||
"bytes": 1666896,
|
||||
"directMediaDurationSeconds": 60.05551,
|
||||
"selectedSegmentStartSeconds": 36
|
||||
},
|
||||
{
|
||||
"environmentId": "theater",
|
||||
"sha256": "05c3ece7c088f34700b7610f791c0ad848a24c77be2c32fd1503a78356739a43",
|
||||
"bytes": 1485015,
|
||||
"directMediaDurationSeconds": 176.901224,
|
||||
"selectedSegmentStartSeconds": 45
|
||||
},
|
||||
{
|
||||
"environmentId": "department",
|
||||
"sha256": "261fda28722fba623483a90b32e7a2ec388c59887f56a5247156b53f1ffb6ccd",
|
||||
"bytes": 2445024,
|
||||
"directMediaDurationSeconds": 292.872,
|
||||
"selectedSegmentStartSeconds": 90
|
||||
},
|
||||
{
|
||||
"environmentId": "market",
|
||||
"sha256": "fc0075dce8ad05b56460c9f18754c27b2021f21f1c780a595ccda648d33c941d",
|
||||
"bytes": 622200,
|
||||
"directMediaDurationSeconds": 76.696961,
|
||||
"selectedSegmentStartSeconds": 60
|
||||
},
|
||||
{
|
||||
"environmentId": "subway",
|
||||
"sha256": "41fcf064cde53cef1528fe98721347851e60c070d8ff9f213f354025cf272d4c",
|
||||
"bytes": 3343901,
|
||||
"directMediaDurationSeconds": 425.024,
|
||||
"selectedSegmentStartSeconds": 65
|
||||
},
|
||||
{
|
||||
"environmentId": "cafe",
|
||||
"sha256": "6360791fdcee1f64638f0fc9abd6d2c7a1aa75fd3d2b80033170a02d025099dc",
|
||||
"bytes": 19947952,
|
||||
"directMediaDurationSeconds": 1200.000998,
|
||||
"selectedSegmentStartSeconds": 180
|
||||
},
|
||||
{
|
||||
"environmentId": "rain",
|
||||
"sha256": "ef0511593b1bb0ba47d5c5dafd83eb07ba854b5a65fd5d41b8c76a1b3ff2c22a",
|
||||
"bytes": 91187572,
|
||||
"directMediaDurationSeconds": 1800.0,
|
||||
"selectedSegmentStartSeconds": 180
|
||||
}
|
||||
],
|
||||
"manifestSha256": "4f21df1c046e545553319889218c29b3efe0da0d49d45d3e09a36fb7759a617c",
|
||||
"toolVersions": {
|
||||
"ffmpeg": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers"
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"environmentId": "street",
|
||||
"selectedSegmentStartSeconds": 35,
|
||||
"sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1",
|
||||
"bytes": 576044,
|
||||
"duration": 12.0,
|
||||
"rms": 0.07999756262285758,
|
||||
"peak": 0.396759033203125,
|
||||
"conversion": {
|
||||
"startSeconds": 35,
|
||||
"durationSeconds": 12,
|
||||
"seekMethod": "input seek",
|
||||
"fadeSeconds": 0.05,
|
||||
"sampleRate": 24000,
|
||||
"channels": 1,
|
||||
"encoding": "PCM16 little-endian",
|
||||
"linearGain": 1.849547024580241,
|
||||
"targetRms": 0.08,
|
||||
"peakLimit": 0.85,
|
||||
"maxGain": 4,
|
||||
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||
}
|
||||
},
|
||||
{
|
||||
"environmentId": "mall",
|
||||
"selectedSegmentStartSeconds": 36,
|
||||
"sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1",
|
||||
"bytes": 576044,
|
||||
"duration": 12.0,
|
||||
"rms": 0.07999755012072322,
|
||||
"peak": 0.71917724609375,
|
||||
"conversion": {
|
||||
"startSeconds": 36,
|
||||
"durationSeconds": 12,
|
||||
"seekMethod": "input seek",
|
||||
"fadeSeconds": 0.05,
|
||||
"sampleRate": 24000,
|
||||
"channels": 1,
|
||||
"encoding": "PCM16 little-endian",
|
||||
"linearGain": 0.9433928828892831,
|
||||
"targetRms": 0.08,
|
||||
"peakLimit": 0.85,
|
||||
"maxGain": 4,
|
||||
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||
}
|
||||
},
|
||||
{
|
||||
"environmentId": "theater",
|
||||
"selectedSegmentStartSeconds": 45,
|
||||
"sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635",
|
||||
"bytes": 576044,
|
||||
"duration": 12.0,
|
||||
"rms": 0.0799975663639253,
|
||||
"peak": 0.495086669921875,
|
||||
"conversion": {
|
||||
"startSeconds": 45,
|
||||
"durationSeconds": 12,
|
||||
"seekMethod": "input seek",
|
||||
"fadeSeconds": 0.05,
|
||||
"sampleRate": 24000,
|
||||
"channels": 1,
|
||||
"encoding": "PCM16 little-endian",
|
||||
"linearGain": 1.438006249673014,
|
||||
"targetRms": 0.08,
|
||||
"peakLimit": 0.85,
|
||||
"maxGain": 4,
|
||||
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||
}
|
||||
},
|
||||
{
|
||||
"environmentId": "department",
|
||||
"selectedSegmentStartSeconds": 90,
|
||||
"sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7",
|
||||
"bytes": 576044,
|
||||
"duration": 12.0,
|
||||
"rms": 0.07999757899341044,
|
||||
"peak": 0.4749755859375,
|
||||
"conversion": {
|
||||
"startSeconds": 90,
|
||||
"durationSeconds": 12,
|
||||
"seekMethod": "input seek",
|
||||
"fadeSeconds": 0.05,
|
||||
"sampleRate": 24000,
|
||||
"channels": 1,
|
||||
"encoding": "PCM16 little-endian",
|
||||
"linearGain": 1.2266018453762095,
|
||||
"targetRms": 0.08,
|
||||
"peakLimit": 0.85,
|
||||
"maxGain": 4,
|
||||
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||
}
|
||||
},
|
||||
{
|
||||
"environmentId": "market",
|
||||
"selectedSegmentStartSeconds": 60,
|
||||
"sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6",
|
||||
"bytes": 576044,
|
||||
"duration": 12.0,
|
||||
"rms": 0.07999755668792045,
|
||||
"peak": 0.507232666015625,
|
||||
"conversion": {
|
||||
"startSeconds": 60,
|
||||
"durationSeconds": 12,
|
||||
"seekMethod": "full decode then sample trim",
|
||||
"fadeSeconds": 0.05,
|
||||
"sampleRate": 24000,
|
||||
"channels": 1,
|
||||
"encoding": "PCM16 little-endian",
|
||||
"linearGain": 1.6103277706340973,
|
||||
"targetRms": 0.08,
|
||||
"peakLimit": 0.85,
|
||||
"maxGain": 4,
|
||||
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||
}
|
||||
},
|
||||
{
|
||||
"environmentId": "subway",
|
||||
"selectedSegmentStartSeconds": 65,
|
||||
"sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f",
|
||||
"bytes": 576044,
|
||||
"duration": 12.0,
|
||||
"rms": 0.07999755256849092,
|
||||
"peak": 0.42529296875,
|
||||
"conversion": {
|
||||
"startSeconds": 65,
|
||||
"durationSeconds": 12,
|
||||
"seekMethod": "input seek",
|
||||
"fadeSeconds": 0.05,
|
||||
"sampleRate": 24000,
|
||||
"channels": 1,
|
||||
"encoding": "PCM16 little-endian",
|
||||
"linearGain": 0.4367522670617141,
|
||||
"targetRms": 0.08,
|
||||
"peakLimit": 0.85,
|
||||
"maxGain": 4,
|
||||
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||
}
|
||||
},
|
||||
{
|
||||
"environmentId": "cafe",
|
||||
"selectedSegmentStartSeconds": 180,
|
||||
"sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216",
|
||||
"bytes": 576044,
|
||||
"duration": 12.0,
|
||||
"rms": 0.07999756802463229,
|
||||
"peak": 0.44708251953125,
|
||||
"conversion": {
|
||||
"startSeconds": 180,
|
||||
"durationSeconds": 12,
|
||||
"seekMethod": "full decode then sample trim",
|
||||
"fadeSeconds": 0.05,
|
||||
"sampleRate": 24000,
|
||||
"channels": 1,
|
||||
"encoding": "PCM16 little-endian",
|
||||
"linearGain": 0.6696615304282213,
|
||||
"targetRms": 0.08,
|
||||
"peakLimit": 0.85,
|
||||
"maxGain": 4,
|
||||
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||
}
|
||||
},
|
||||
{
|
||||
"environmentId": "rain",
|
||||
"selectedSegmentStartSeconds": 180,
|
||||
"sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9",
|
||||
"bytes": 576044,
|
||||
"duration": 12.0,
|
||||
"rms": 0.011384632877156162,
|
||||
"peak": 0.1024169921875,
|
||||
"conversion": {
|
||||
"startSeconds": 180,
|
||||
"durationSeconds": 12,
|
||||
"seekMethod": "input seek",
|
||||
"fadeSeconds": 0.05,
|
||||
"sampleRate": 24000,
|
||||
"channels": 1,
|
||||
"encoding": "PCM16 little-endian",
|
||||
"linearGain": 4,
|
||||
"targetRms": 0.08,
|
||||
"peakLimit": 0.85,
|
||||
"maxGain": 4,
|
||||
"operations": "excerpt, downmix, resample, linear end fades, bounded linear normalization, WAV encoding"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Exit code: 0
|
||||
Finished UTC: 2026-10-14T09:16:20.228871+00:00
|
||||
@@ -0,0 +1,14 @@
|
||||
$ /tmp/findword-asr-venv/bin/python .agent/evidence-v0.2.3/privacy-screening/screen-final.py
|
||||
Started UTC: 2026-10-14T09:16:47.940443+00:00
|
||||
{"environmentId": "street", "sha256": "a8bffa201b174618955bc51b860167169125304811aabe2086b0bb35b06c3ae1", "language": "en", "languageProbability": 0.3898167014122009, "segments": [], "text": ""}
|
||||
{"environmentId": "mall", "sha256": "680a769940c08f0d12c6c954c08366598dd8b5745e276f39c82b10d1a88261a1", "language": "en", "languageProbability": 0.21966177225112915, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 12.0, "text": " It's so beautiful, it's so beautiful, it's so beautiful.", "tokens": [50364, 467, 311, 370, 2238, 11, 309, 311, 370, 2238, 11, 309, 311, 370, 2238, 13, 50964], "avg_logprob": -0.93099288476838, "compression_ratio": 1.8064516129032258, "no_speech_prob": 0.33958810567855835, "words": null, "temperature": 0.0}], "text": " It's so beautiful, it's so beautiful, it's so beautiful."}
|
||||
{"environmentId": "theater", "sha256": "2d6a444fb7874cdf6b2d8a741a69175299b112eb66834912c025437d8277d635", "language": "en", "languageProbability": 0.25658440589904785, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 7.0, "text": " Thank you for watching.", "tokens": [50364, 1044, 291, 337, 1976, 13, 50714], "avg_logprob": -1.1992912590503693, "compression_ratio": 0.7419354838709677, "no_speech_prob": 0.30440080165863037, "words": null, "temperature": 1.0}], "text": " Thank you for watching."}
|
||||
{"environmentId": "department", "sha256": "aa43f3d1d3e7c2b1f8ace24ecbda45d0ea3a031db941c39506dc6c1665b8efa7", "language": "en", "languageProbability": 0.29920145869255066, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 12.0, "text": " Thank you for watching!", "tokens": [50364, 1044, 291, 337, 1976, 0, 50964], "avg_logprob": -1.3012538105249405, "compression_ratio": 0.7419354838709677, "no_speech_prob": 0.3079261779785156, "words": null, "temperature": 1.0}], "text": " Thank you for watching!"}
|
||||
{"environmentId": "market", "sha256": "7a7a980845a4aade2a7e8a108eae746220a4688e92792ee93d3deb76b2a762f6", "language": "ja", "languageProbability": 0.15124011039733887, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 12.0, "text": "ご視聴ありがとうございました", "tokens": [50364, 9991, 27333, 8171, 112, 38538, 50964], "avg_logprob": -1.0916412025690079, "compression_ratio": 0.8571428571428571, "no_speech_prob": 0.4130496084690094, "words": null, "temperature": 1.0}], "text": "ご視聴ありがとうございました"}
|
||||
{"environmentId": "subway", "sha256": "9faf70b68617d267b367a0f3692ed90015458543ab4b0844f6c704e6a724728f", "language": "en", "languageProbability": 0.28915584087371826, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 7.0, "text": " Thank you for watching.", "tokens": [50364, 1044, 291, 337, 1976, 13, 50714], "avg_logprob": -1.1550373882055283, "compression_ratio": 0.7419354838709677, "no_speech_prob": 0.5948910713195801, "words": null, "temperature": 1.0}], "text": " Thank you for watching."}
|
||||
{"environmentId": "cafe", "sha256": "802a956e91b85a2fdd0e1f161d75bfada7a53499bcb57ba7f578411480ded216", "language": "en", "languageProbability": 0.25277179479599, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 12.0, "text": " Thank you for watching.", "tokens": [50364, 1044, 291, 337, 1976, 13, 50964], "avg_logprob": -1.174854263663292, "compression_ratio": 0.7419354838709677, "no_speech_prob": 0.46528390049934387, "words": null, "temperature": 1.0}], "text": " Thank you for watching."}
|
||||
{"environmentId": "rain", "sha256": "f4315084e820f742b0709de5bb0d1abd3d5af1730620e08c2948b70347356dd9", "language": "nn", "languageProbability": 0.5633389949798584, "segments": [{"id": 1, "seek": 0, "start": 0.0, "end": 2.0, "text": " Let's go!", "tokens": [50364, 961, 311, 352, 0, 50464], "avg_logprob": -1.2815486363002233, "compression_ratio": 0.5294117647058824, "no_speech_prob": 0.4753601849079132, "words": null, "temperature": 1.0}], "text": " Let's go!"}
|
||||
Required changed excerpts produced ASR segments; screening criterion failed.
|
||||
|
||||
Exit code: 1
|
||||
Finished UTC: 2026-10-14T09:17:06.762347+00:00
|
||||
@@ -0,0 +1,14 @@
|
||||
$ npx vitest run tests/ambience.test.ts tests/build.test.ts -t '선택 구간|101개 음성|현장음 manifest|현장음 .* 손상|고지는 각 항목'
|
||||
Started UTC: 2026-10-14T09:17:53.364228+00:00
|
||||
|
||||
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
|
||||
|
||||
|
||||
Test Files 2 passed (2)
|
||||
Tests 24 passed | 11 skipped (35)
|
||||
Start at 09:17:54
|
||||
Duration 22.57s (tests 96%, setup 3%, transform 1%)
|
||||
|
||||
|
||||
Exit code: 0
|
||||
Finished UTC: 2026-10-14T09:18:17.137511+00:00
|
||||
@@ -0,0 +1,20 @@
|
||||
$ npm run build
|
||||
Started UTC: 2026-10-14T09:17:53.387660+00:00
|
||||
|
||||
> find-word@0.2.3 build
|
||||
> tsc --noEmit && vite build && node scripts/check-build.mjs
|
||||
|
||||
vite v8.3.4 building client environment for production...
|
||||
transforming...
|
||||
✓ 21 modules transformed.
|
||||
rendering chunks...
|
||||
computing gzip size...
|
||||
dist/index.html 1.31 kB │ gzip: 0.91 kB
|
||||
dist/assets/index-CgXbHuMU.css 16.11 kB │ gzip: 4.53 kB
|
||||
dist/assets/index-BChkBncw.js 247.95 kB │ gzip: 78.07 kB
|
||||
|
||||
✓ built in 435ms
|
||||
빌드 음성 자산 101개 + 현장음 8개 및 런타임/현장음 notice 확인
|
||||
|
||||
Exit code: 0
|
||||
Finished UTC: 2026-10-14T09:18:02.496827+00:00
|
||||
@@ -0,0 +1,9 @@
|
||||
$ npm run lint
|
||||
Started UTC: 2026-10-14T09:17:53.361817+00:00
|
||||
|
||||
> find-word@0.2.3 lint
|
||||
> eslint . && tsc --noEmit
|
||||
|
||||
|
||||
Exit code: 0
|
||||
Finished UTC: 2026-10-14T09:18:05.370273+00:00
|
||||
@@ -0,0 +1,457 @@
|
||||
$ python3 -m unittest discover -s tests/python -v
|
||||
Started UTC: 2026-10-14T09:17:53.337776+00:00
|
||||
test_convert_format_fade_normalization_and_reproducibility (test_ambience_audio.AmbienceConversion.test_convert_format_fade_normalization_and_reproducibility)
|
||||
스테레오 48kHz 입력을 실제로 내려 섞고 길이·양끝·안전 피크를 확인한다. ... ok
|
||||
test_short_input_seek_retries_full_decode_without_padding_or_truncating (test_ambience_audio.AmbienceConversion.test_short_input_seek_retries_full_decode_without_padding_or_truncating) ... ok
|
||||
test_silence_fails_before_publishing (test_ambience_audio.AmbienceConversion.test_silence_fails_before_publishing)
|
||||
무음을 정상 현장 녹음으로 포장하지 않는다. ... ok
|
||||
test_all_eight_assets_validated_before_publication (test_ambience_audio.AtomicPublication.test_all_eight_assets_validated_before_publication) ... ok
|
||||
test_atomic_success_removes_stale_files_and_stages_notice_on_same_filesystem (test_ambience_audio.AtomicPublication.test_atomic_success_removes_stale_files_and_stages_notice_on_same_filesystem) ... ok
|
||||
test_conversion_cannot_override_approved_segment (test_ambience_audio.AtomicPublication.test_conversion_cannot_override_approved_segment) ... ok
|
||||
test_conversion_failure_and_keyboard_interrupt_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_conversion_failure_and_keyboard_interrupt_preserve_prior_directory) ... ok
|
||||
test_exchange_failure_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_exchange_failure_preserves_prior_directory) ... ok
|
||||
test_first_publication_and_real_exchange (test_ambience_audio.AtomicPublication.test_first_publication_and_real_exchange) ... ok
|
||||
test_manifest_and_notice_write_failures_preserve_prior_directory (test_ambience_audio.AtomicPublication.test_manifest_and_notice_write_failures_preserve_prior_directory) ... ok
|
||||
test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice (test_ambience_audio.AtomicPublication.test_plan_alone_controls_selection_and_is_preserved_in_manifest_and_notice) ... ok
|
||||
test_readers_observe_whole_directory_during_real_exchange (test_ambience_audio.AtomicPublication.test_readers_observe_whole_directory_during_real_exchange) ... ok
|
||||
test_sigterm_before_commit_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_sigterm_before_commit_preserves_prior_directory) ... ok
|
||||
test_staged_manifest_notice_and_inventory_tampering_are_rejected (test_ambience_audio.AtomicPublication.test_staged_manifest_notice_and_inventory_tampering_are_rejected) ... ok
|
||||
test_symlink_output_is_rejected_before_conversion (test_ambience_audio.AtomicPublication.test_symlink_output_is_rejected_before_conversion) ... ok
|
||||
test_unsupported_atomic_exchange_preserves_prior_directory (test_ambience_audio.AtomicPublication.test_unsupported_atomic_exchange_preserves_prior_directory) ... ok
|
||||
test_all_sources_checked_before_first_conversion (test_ambience_audio.SourceGuard.test_all_sources_checked_before_first_conversion) ... ok
|
||||
test_invalid_segment_plan_fails_before_any_conversion_without_mutation (test_ambience_audio.SourceGuard.test_invalid_segment_plan_fails_before_any_conversion_without_mutation) ... ok
|
||||
test_all_101_are_validated_before_single_atomic_publication (test_neural_audio.GeneratorContract.test_all_101_are_validated_before_single_atomic_publication) ... [001/101] intro.wav 1.000s
|
||||
[002/101] target-0.wav 1.000s
|
||||
[003/101] target-1.wav 1.000s
|
||||
[004/101] target-2.wav 1.000s
|
||||
[005/101] target-3.wav 1.000s
|
||||
[006/101] target-4.wav 1.000s
|
||||
[007/101] target-5.wav 1.000s
|
||||
[008/101] target-6.wav 1.000s
|
||||
[009/101] target-7.wav 1.000s
|
||||
[010/101] target-8.wav 1.000s
|
||||
[011/101] target-9.wav 1.000s
|
||||
[012/101] target-10.wav 1.000s
|
||||
[013/101] target-11.wav 1.000s
|
||||
[014/101] target-12.wav 1.000s
|
||||
[015/101] target-13.wav 1.000s
|
||||
[016/101] target-14.wav 1.000s
|
||||
[017/101] target-15.wav 1.000s
|
||||
[018/101] target-16.wav 1.000s
|
||||
[019/101] target-17.wav 1.000s
|
||||
[020/101] target-18.wav 1.000s
|
||||
[021/101] target-19.wav 1.000s
|
||||
[022/101] target-20.wav 1.000s
|
||||
[023/101] target-21.wav 1.000s
|
||||
[024/101] target-22.wav 1.000s
|
||||
[025/101] target-23.wav 1.000s
|
||||
[026/101] target-24.wav 1.000s
|
||||
[027/101] target-25.wav 1.000s
|
||||
[028/101] target-26.wav 1.000s
|
||||
[029/101] target-27.wav 1.000s
|
||||
[030/101] target-28.wav 1.000s
|
||||
[031/101] target-29.wav 1.000s
|
||||
[032/101] target-30.wav 1.000s
|
||||
[033/101] target-31.wav 1.000s
|
||||
[034/101] target-32.wav 1.000s
|
||||
[035/101] target-33.wav 1.000s
|
||||
[036/101] target-34.wav 1.000s
|
||||
[037/101] target-35.wav 1.000s
|
||||
[038/101] target-36.wav 1.000s
|
||||
[039/101] target-37.wav 1.000s
|
||||
[040/101] target-38.wav 1.000s
|
||||
[041/101] target-39.wav 1.000s
|
||||
[042/101] target-40.wav 1.000s
|
||||
[043/101] target-41.wav 1.000s
|
||||
[044/101] target-42.wav 1.000s
|
||||
[045/101] target-43.wav 1.000s
|
||||
[046/101] target-44.wav 1.000s
|
||||
[047/101] target-45.wav 1.000s
|
||||
[048/101] target-46.wav 1.000s
|
||||
[049/101] target-47.wav 1.000s
|
||||
[050/101] target-48.wav 1.000s
|
||||
[051/101] target-49.wav 1.000s
|
||||
[052/101] target-50.wav 1.000s
|
||||
[053/101] target-51.wav 1.000s
|
||||
[054/101] target-52.wav 1.000s
|
||||
[055/101] target-53.wav 1.000s
|
||||
[056/101] target-54.wav 1.000s
|
||||
[057/101] target-55.wav 1.000s
|
||||
[058/101] target-56.wav 1.000s
|
||||
[059/101] target-57.wav 1.000s
|
||||
[060/101] target-58.wav 1.000s
|
||||
[061/101] target-59.wav 1.000s
|
||||
[062/101] target-60.wav 1.000s
|
||||
[063/101] target-61.wav 1.000s
|
||||
[064/101] target-62.wav 1.000s
|
||||
[065/101] target-63.wav 1.000s
|
||||
[066/101] target-64.wav 1.000s
|
||||
[067/101] target-65.wav 1.000s
|
||||
[068/101] target-66.wav 1.000s
|
||||
[069/101] target-67.wav 1.000s
|
||||
[070/101] target-68.wav 1.000s
|
||||
[071/101] target-69.wav 1.000s
|
||||
[072/101] target-70.wav 1.000s
|
||||
[073/101] target-71.wav 1.000s
|
||||
[074/101] target-72.wav 1.000s
|
||||
[075/101] target-73.wav 1.000s
|
||||
[076/101] target-74.wav 1.000s
|
||||
[077/101] target-75.wav 1.000s
|
||||
[078/101] target-76.wav 1.000s
|
||||
[079/101] target-77.wav 1.000s
|
||||
[080/101] target-78.wav 1.000s
|
||||
[081/101] target-79.wav 1.000s
|
||||
[082/101] target-80.wav 1.000s
|
||||
[083/101] target-81.wav 1.000s
|
||||
[084/101] target-82.wav 1.000s
|
||||
[085/101] target-83.wav 1.000s
|
||||
[086/101] target-84.wav 1.000s
|
||||
[087/101] target-85.wav 1.000s
|
||||
[088/101] target-86.wav 1.000s
|
||||
[089/101] target-87.wav 1.000s
|
||||
[090/101] target-88.wav 1.000s
|
||||
[091/101] target-89.wav 1.000s
|
||||
[092/101] target-90.wav 1.000s
|
||||
[093/101] target-91.wav 1.000s
|
||||
[094/101] target-92.wav 1.000s
|
||||
[095/101] target-93.wav 1.000s
|
||||
[096/101] target-94.wav 1.000s
|
||||
[097/101] target-95.wav 1.000s
|
||||
[098/101] target-96.wav 1.000s
|
||||
[099/101] target-97.wav 1.000s
|
||||
[100/101] target-98.wav 1.000s
|
||||
[101/101] target-99.wav 1.000s
|
||||
ok
|
||||
test_atomic_exchange_keeps_old_tree_at_staging_path (test_neural_audio.GeneratorContract.test_atomic_exchange_keeps_old_tree_at_staging_path) ... ok
|
||||
test_atomic_first_publication (test_neural_audio.GeneratorContract.test_atomic_first_publication) ... ok
|
||||
test_cli_import_has_no_generation_or_filesystem_side_effects (test_neural_audio.GeneratorContract.test_cli_import_has_no_generation_or_filesystem_side_effects) ... ok
|
||||
test_edge_adapter_uses_pinned_python_prosody_timeout_and_no_shell (test_neural_audio.GeneratorContract.test_edge_adapter_uses_pinned_python_prosody_timeout_and_no_shell) ... ok
|
||||
test_exhausted_provider_failure_preserves_existing_files_and_redacts_secrets (test_neural_audio.GeneratorContract.test_exhausted_provider_failure_preserves_existing_files_and_redacts_secrets) ... ok
|
||||
test_ffmpeg_adapter_actually_decodes_mp3_to_normalized_pcm24 (test_neural_audio.GeneratorContract.test_ffmpeg_adapter_actually_decodes_mp3_to_normalized_pcm24) ... ok
|
||||
test_ffmpeg_failure_is_not_retried_and_preserves_existing_files (test_neural_audio.GeneratorContract.test_ffmpeg_failure_is_not_retried_and_preserves_existing_files) ... ok
|
||||
test_full_validation_detects_changed_earlier_file_before_publication (test_neural_audio.GeneratorContract.test_full_validation_detects_changed_earlier_file_before_publication) ... [001/101] intro.wav 1.000s
|
||||
[002/101] target-0.wav 1.000s
|
||||
[003/101] target-1.wav 1.000s
|
||||
[004/101] target-2.wav 1.000s
|
||||
[005/101] target-3.wav 1.000s
|
||||
[006/101] target-4.wav 1.000s
|
||||
[007/101] target-5.wav 1.000s
|
||||
[008/101] target-6.wav 1.000s
|
||||
[009/101] target-7.wav 1.000s
|
||||
[010/101] target-8.wav 1.000s
|
||||
[011/101] target-9.wav 1.000s
|
||||
[012/101] target-10.wav 1.000s
|
||||
[013/101] target-11.wav 1.000s
|
||||
[014/101] target-12.wav 1.000s
|
||||
[015/101] target-13.wav 1.000s
|
||||
[016/101] target-14.wav 1.000s
|
||||
[017/101] target-15.wav 1.000s
|
||||
[018/101] target-16.wav 1.000s
|
||||
[019/101] target-17.wav 1.000s
|
||||
[020/101] target-18.wav 1.000s
|
||||
[021/101] target-19.wav 1.000s
|
||||
[022/101] target-20.wav 1.000s
|
||||
[023/101] target-21.wav 1.000s
|
||||
[024/101] target-22.wav 1.000s
|
||||
[025/101] target-23.wav 1.000s
|
||||
[026/101] target-24.wav 1.000s
|
||||
[027/101] target-25.wav 1.000s
|
||||
[028/101] target-26.wav 1.000s
|
||||
[029/101] target-27.wav 1.000s
|
||||
[030/101] target-28.wav 1.000s
|
||||
[031/101] target-29.wav 1.000s
|
||||
[032/101] target-30.wav 1.000s
|
||||
[033/101] target-31.wav 1.000s
|
||||
[034/101] target-32.wav 1.000s
|
||||
[035/101] target-33.wav 1.000s
|
||||
[036/101] target-34.wav 1.000s
|
||||
[037/101] target-35.wav 1.000s
|
||||
[038/101] target-36.wav 1.000s
|
||||
[039/101] target-37.wav 1.000s
|
||||
[040/101] target-38.wav 1.000s
|
||||
[041/101] target-39.wav 1.000s
|
||||
[042/101] target-40.wav 1.000s
|
||||
[043/101] target-41.wav 1.000s
|
||||
[044/101] target-42.wav 1.000s
|
||||
[045/101] target-43.wav 1.000s
|
||||
[046/101] target-44.wav 1.000s
|
||||
[047/101] target-45.wav 1.000s
|
||||
[048/101] target-46.wav 1.000s
|
||||
[049/101] target-47.wav 1.000s
|
||||
[050/101] target-48.wav 1.000s
|
||||
[051/101] target-49.wav 1.000s
|
||||
[052/101] target-50.wav 1.000s
|
||||
[053/101] target-51.wav 1.000s
|
||||
[054/101] target-52.wav 1.000s
|
||||
[055/101] target-53.wav 1.000s
|
||||
[056/101] target-54.wav 1.000s
|
||||
[057/101] target-55.wav 1.000s
|
||||
[058/101] target-56.wav 1.000s
|
||||
[059/101] target-57.wav 1.000s
|
||||
[060/101] target-58.wav 1.000s
|
||||
[061/101] target-59.wav 1.000s
|
||||
[062/101] target-60.wav 1.000s
|
||||
[063/101] target-61.wav 1.000s
|
||||
[064/101] target-62.wav 1.000s
|
||||
[065/101] target-63.wav 1.000s
|
||||
[066/101] target-64.wav 1.000s
|
||||
[067/101] target-65.wav 1.000s
|
||||
[068/101] target-66.wav 1.000s
|
||||
[069/101] target-67.wav 1.000s
|
||||
[070/101] target-68.wav 1.000s
|
||||
[071/101] target-69.wav 1.000s
|
||||
[072/101] target-70.wav 1.000s
|
||||
[073/101] target-71.wav 1.000s
|
||||
[074/101] target-72.wav 1.000s
|
||||
[075/101] target-73.wav 1.000s
|
||||
[076/101] target-74.wav 1.000s
|
||||
[077/101] target-75.wav 1.000s
|
||||
[078/101] target-76.wav 1.000s
|
||||
[079/101] target-77.wav 1.000s
|
||||
[080/101] target-78.wav 1.000s
|
||||
[081/101] target-79.wav 1.000s
|
||||
[082/101] target-80.wav 1.000s
|
||||
[083/101] target-81.wav 1.000s
|
||||
[084/101] target-82.wav 1.000s
|
||||
[085/101] target-83.wav 1.000s
|
||||
[086/101] target-84.wav 1.000s
|
||||
[087/101] target-85.wav 1.000s
|
||||
[088/101] target-86.wav 1.000s
|
||||
[089/101] target-87.wav 1.000s
|
||||
[090/101] target-88.wav 1.000s
|
||||
[091/101] target-89.wav 1.000s
|
||||
[092/101] target-90.wav 1.000s
|
||||
[093/101] target-91.wav 1.000s
|
||||
[094/101] target-92.wav 1.000s
|
||||
[095/101] target-93.wav 1.000s
|
||||
[096/101] target-94.wav 1.000s
|
||||
[097/101] target-95.wav 1.000s
|
||||
[098/101] target-96.wav 1.000s
|
||||
[099/101] target-97.wav 1.000s
|
||||
[100/101] target-98.wav 1.000s
|
||||
[101/101] target-99.wav 1.000s
|
||||
ok
|
||||
test_interruption_preserves_existing_files_and_cleans_temporary_data (test_neural_audio.GeneratorContract.test_interruption_preserves_existing_files_and_cleans_temporary_data) ... ok
|
||||
test_invalid_pcm_never_reaches_publication (test_neural_audio.GeneratorContract.test_invalid_pcm_never_reaches_publication) ... ok
|
||||
test_publication_failure_preserves_existing_files (test_neural_audio.GeneratorContract.test_publication_failure_preserves_existing_files) ... [001/101] intro.wav 1.000s
|
||||
[002/101] target-0.wav 1.000s
|
||||
[003/101] target-1.wav 1.000s
|
||||
[004/101] target-2.wav 1.000s
|
||||
[005/101] target-3.wav 1.000s
|
||||
[006/101] target-4.wav 1.000s
|
||||
[007/101] target-5.wav 1.000s
|
||||
[008/101] target-6.wav 1.000s
|
||||
[009/101] target-7.wav 1.000s
|
||||
[010/101] target-8.wav 1.000s
|
||||
[011/101] target-9.wav 1.000s
|
||||
[012/101] target-10.wav 1.000s
|
||||
[013/101] target-11.wav 1.000s
|
||||
[014/101] target-12.wav 1.000s
|
||||
[015/101] target-13.wav 1.000s
|
||||
[016/101] target-14.wav 1.000s
|
||||
[017/101] target-15.wav 1.000s
|
||||
[018/101] target-16.wav 1.000s
|
||||
[019/101] target-17.wav 1.000s
|
||||
[020/101] target-18.wav 1.000s
|
||||
[021/101] target-19.wav 1.000s
|
||||
[022/101] target-20.wav 1.000s
|
||||
[023/101] target-21.wav 1.000s
|
||||
[024/101] target-22.wav 1.000s
|
||||
[025/101] target-23.wav 1.000s
|
||||
[026/101] target-24.wav 1.000s
|
||||
[027/101] target-25.wav 1.000s
|
||||
[028/101] target-26.wav 1.000s
|
||||
[029/101] target-27.wav 1.000s
|
||||
[030/101] target-28.wav 1.000s
|
||||
[031/101] target-29.wav 1.000s
|
||||
[032/101] target-30.wav 1.000s
|
||||
[033/101] target-31.wav 1.000s
|
||||
[034/101] target-32.wav 1.000s
|
||||
[035/101] target-33.wav 1.000s
|
||||
[036/101] target-34.wav 1.000s
|
||||
[037/101] target-35.wav 1.000s
|
||||
[038/101] target-36.wav 1.000s
|
||||
[039/101] target-37.wav 1.000s
|
||||
[040/101] target-38.wav 1.000s
|
||||
[041/101] target-39.wav 1.000s
|
||||
[042/101] target-40.wav 1.000s
|
||||
[043/101] target-41.wav 1.000s
|
||||
[044/101] target-42.wav 1.000s
|
||||
[045/101] target-43.wav 1.000s
|
||||
[046/101] target-44.wav 1.000s
|
||||
[047/101] target-45.wav 1.000s
|
||||
[048/101] target-46.wav 1.000s
|
||||
[049/101] target-47.wav 1.000s
|
||||
[050/101] target-48.wav 1.000s
|
||||
[051/101] target-49.wav 1.000s
|
||||
[052/101] target-50.wav 1.000s
|
||||
[053/101] target-51.wav 1.000s
|
||||
[054/101] target-52.wav 1.000s
|
||||
[055/101] target-53.wav 1.000s
|
||||
[056/101] target-54.wav 1.000s
|
||||
[057/101] target-55.wav 1.000s
|
||||
[058/101] target-56.wav 1.000s
|
||||
[059/101] target-57.wav 1.000s
|
||||
[060/101] target-58.wav 1.000s
|
||||
[061/101] target-59.wav 1.000s
|
||||
[062/101] target-60.wav 1.000s
|
||||
[063/101] target-61.wav 1.000s
|
||||
[064/101] target-62.wav 1.000s
|
||||
[065/101] target-63.wav 1.000s
|
||||
[066/101] target-64.wav 1.000s
|
||||
[067/101] target-65.wav 1.000s
|
||||
[068/101] target-66.wav 1.000s
|
||||
[069/101] target-67.wav 1.000s
|
||||
[070/101] target-68.wav 1.000s
|
||||
[071/101] target-69.wav 1.000s
|
||||
[072/101] target-70.wav 1.000s
|
||||
[073/101] target-71.wav 1.000s
|
||||
[074/101] target-72.wav 1.000s
|
||||
[075/101] target-73.wav 1.000s
|
||||
[076/101] target-74.wav 1.000s
|
||||
[077/101] target-75.wav 1.000s
|
||||
[078/101] target-76.wav 1.000s
|
||||
[079/101] target-77.wav 1.000s
|
||||
[080/101] target-78.wav 1.000s
|
||||
[081/101] target-79.wav 1.000s
|
||||
[082/101] target-80.wav 1.000s
|
||||
[083/101] target-81.wav 1.000s
|
||||
[084/101] target-82.wav 1.000s
|
||||
[085/101] target-83.wav 1.000s
|
||||
[086/101] target-84.wav 1.000s
|
||||
[087/101] target-85.wav 1.000s
|
||||
[088/101] target-86.wav 1.000s
|
||||
[089/101] target-87.wav 1.000s
|
||||
[090/101] target-88.wav 1.000s
|
||||
[091/101] target-89.wav 1.000s
|
||||
[092/101] target-90.wav 1.000s
|
||||
[093/101] target-91.wav 1.000s
|
||||
[094/101] target-92.wav 1.000s
|
||||
[095/101] target-93.wav 1.000s
|
||||
[096/101] target-94.wav 1.000s
|
||||
[097/101] target-95.wav 1.000s
|
||||
[098/101] target-96.wav 1.000s
|
||||
[099/101] target-97.wav 1.000s
|
||||
[100/101] target-98.wav 1.000s
|
||||
[101/101] target-99.wav 1.000s
|
||||
ok
|
||||
test_rejects_incomplete_or_duplicate_or_unsafe_inventory_before_requests (test_neural_audio.GeneratorContract.test_rejects_incomplete_or_duplicate_or_unsafe_inventory_before_requests) ... ok
|
||||
test_timeout_is_bounded_and_preserves_existing_files (test_neural_audio.GeneratorContract.test_timeout_is_bounded_and_preserves_existing_files) ... intro.wav: provider 시도 1/3 실패
|
||||
intro.wav: provider 시도 2/3 실패
|
||||
intro.wav: provider 시도 3/3 실패
|
||||
ok
|
||||
test_transient_provider_failures_retry_cleanly_with_bounded_backoff (test_neural_audio.GeneratorContract.test_transient_provider_failures_retry_cleanly_with_bounded_backoff) ... intro.wav: provider 시도 1/3 실패
|
||||
intro.wav: provider 시도 2/3 실패
|
||||
[001/101] intro.wav 1.000s
|
||||
[002/101] target-0.wav 1.000s
|
||||
[003/101] target-1.wav 1.000s
|
||||
[004/101] target-2.wav 1.000s
|
||||
[005/101] target-3.wav 1.000s
|
||||
[006/101] target-4.wav 1.000s
|
||||
[007/101] target-5.wav 1.000s
|
||||
[008/101] target-6.wav 1.000s
|
||||
[009/101] target-7.wav 1.000s
|
||||
[010/101] target-8.wav 1.000s
|
||||
[011/101] target-9.wav 1.000s
|
||||
[012/101] target-10.wav 1.000s
|
||||
[013/101] target-11.wav 1.000s
|
||||
[014/101] target-12.wav 1.000s
|
||||
[015/101] target-13.wav 1.000s
|
||||
[016/101] target-14.wav 1.000s
|
||||
[017/101] target-15.wav 1.000s
|
||||
[018/101] target-16.wav 1.000s
|
||||
[019/101] target-17.wav 1.000s
|
||||
[020/101] target-18.wav 1.000s
|
||||
[021/101] target-19.wav 1.000s
|
||||
[022/101] target-20.wav 1.000s
|
||||
[023/101] target-21.wav 1.000s
|
||||
[024/101] target-22.wav 1.000s
|
||||
[025/101] target-23.wav 1.000s
|
||||
[026/101] target-24.wav 1.000s
|
||||
[027/101] target-25.wav 1.000s
|
||||
[028/101] target-26.wav 1.000s
|
||||
[029/101] target-27.wav 1.000s
|
||||
[030/101] target-28.wav 1.000s
|
||||
[031/101] target-29.wav 1.000s
|
||||
[032/101] target-30.wav 1.000s
|
||||
[033/101] target-31.wav 1.000s
|
||||
[034/101] target-32.wav 1.000s
|
||||
[035/101] target-33.wav 1.000s
|
||||
[036/101] target-34.wav 1.000s
|
||||
[037/101] target-35.wav 1.000s
|
||||
[038/101] target-36.wav 1.000s
|
||||
[039/101] target-37.wav 1.000s
|
||||
[040/101] target-38.wav 1.000s
|
||||
[041/101] target-39.wav 1.000s
|
||||
[042/101] target-40.wav 1.000s
|
||||
[043/101] target-41.wav 1.000s
|
||||
[044/101] target-42.wav 1.000s
|
||||
[045/101] target-43.wav 1.000s
|
||||
[046/101] target-44.wav 1.000s
|
||||
[047/101] target-45.wav 1.000s
|
||||
[048/101] target-46.wav 1.000s
|
||||
[049/101] target-47.wav 1.000s
|
||||
[050/101] target-48.wav 1.000s
|
||||
[051/101] target-49.wav 1.000s
|
||||
[052/101] target-50.wav 1.000s
|
||||
[053/101] target-51.wav 1.000s
|
||||
[054/101] target-52.wav 1.000s
|
||||
[055/101] target-53.wav 1.000s
|
||||
[056/101] target-54.wav 1.000s
|
||||
[057/101] target-55.wav 1.000s
|
||||
[058/101] target-56.wav 1.000s
|
||||
[059/101] target-57.wav 1.000s
|
||||
[060/101] target-58.wav 1.000s
|
||||
[061/101] target-59.wav 1.000s
|
||||
[062/101] target-60.wav 1.000s
|
||||
[063/101] target-61.wav 1.000s
|
||||
[064/101] target-62.wav 1.000s
|
||||
[065/101] target-63.wav 1.000s
|
||||
[066/101] target-64.wav 1.000s
|
||||
[067/101] target-65.wav 1.000s
|
||||
[068/101] target-66.wav 1.000s
|
||||
[069/101] target-67.wav 1.000s
|
||||
[070/101] target-68.wav 1.000s
|
||||
[071/101] target-69.wav 1.000s
|
||||
[072/101] target-70.wav 1.000s
|
||||
[073/101] target-71.wav 1.000s
|
||||
[074/101] target-72.wav 1.000s
|
||||
[075/101] target-73.wav 1.000s
|
||||
[076/101] target-74.wav 1.000s
|
||||
[077/101] target-75.wav 1.000s
|
||||
[078/101] target-76.wav 1.000s
|
||||
[079/101] target-77.wav 1.000s
|
||||
[080/101] target-78.wav 1.000s
|
||||
[081/101] target-79.wav 1.000s
|
||||
[082/101] target-80.wav 1.000s
|
||||
[083/101] target-81.wav 1.000s
|
||||
[084/101] target-82.wav 1.000s
|
||||
[085/101] target-83.wav 1.000s
|
||||
[086/101] target-84.wav 1.000s
|
||||
[087/101] target-85.wav 1.000s
|
||||
[088/101] target-86.wav 1.000s
|
||||
[089/101] target-87.wav 1.000s
|
||||
[090/101] target-88.wav 1.000s
|
||||
[091/101] target-89.wav 1.000s
|
||||
[092/101] target-90.wav 1.000s
|
||||
[093/101] target-91.wav 1.000s
|
||||
[094/101] target-92.wav 1.000s
|
||||
[095/101] target-93.wav 1.000s
|
||||
[096/101] target-94.wav 1.000s
|
||||
[097/101] target-95.wav 1.000s
|
||||
[098/101] target-96.wav 1.000s
|
||||
[099/101] target-97.wav 1.000s
|
||||
[100/101] target-98.wav 1.000s
|
||||
[101/101] target-99.wav 1.000s
|
||||
ok
|
||||
test_wrong_edge_version_fails_before_network_or_asset_changes (test_neural_audio.GeneratorContract.test_wrong_edge_version_fails_before_network_or_asset_changes) ... ok
|
||||
test_rejects_silence_clipping_bad_format_and_abnormal_duration (test_neural_audio.PCMContract.test_rejects_silence_clipping_bad_format_and_abnormal_duration) ... ok
|
||||
test_valid_pcm_returns_measured_hash_bytes_duration_and_levels (test_neural_audio.PCMContract.test_valid_pcm_returns_measured_hash_bytes_duration_and_levels) ... ok
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 36 tests in 15.946s
|
||||
|
||||
OK
|
||||
|
||||
Exit code: 0
|
||||
Finished UTC: 2026-10-14T09:18:09.473315+00:00
|
||||