feat: release Find-Word v0.2.3

This commit is contained in:
oz
2026-10-14 10:01:46 +00:00
parent c92660b514
commit 812540c743
531 changed files with 103693 additions and 325 deletions
@@ -0,0 +1,569 @@
$ npx vitest run tests/App.test.tsx tests/neural-release.test.ts
RUN v5.0.4 /home/hermes/worktrees/find-word-v0.2.3
❯ tests/App.test.tsx (23 tests | 1 failed) 3909ms
❯ 시작부터 결과까지 사용자 흐름 (13)
× 혼합 모드 세 문제를 키보드·텍스트로 풀고 결과에서 다시 시작한다 403ms
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
FAIL tests/App.test.tsx > 시작부터 결과까지 사용자 흐름 > 혼합 모드 세 문제를 키보드·텍스트로 풀고 결과에서 다시 시작한다
TestingLibraryElementError: Unable to find an accessible element with the role "heading" and name `/오늘의 소리 탐험/`
Here are the accessible roles:
link:
Name "본문으로 건너뛰기":
<a
class="skip-link"
href="#main"
/>
Name "환경음 출처·라이선스":
<a
href="/AMBIENCE_NOTICES.md"
/>
--------------------------------------------------
banner:
Name "":
<header
class="header wrap"
/>
--------------------------------------------------
heading:
Name "단어를 맞춰라":
<h1 />
Name "1단계 문제 풀이를 마쳤어요.":
<h2
tabindex="-1"
/>
--------------------------------------------------
main:
Name "":
<main
class="wrap"
id="main"
tabindex="-1"
/>
--------------------------------------------------
paragraph:
Name "":
<p
class="muted"
/>
Name "":
<p />
Name "":
<p
class="muted"
/>
Name "":
<p />
Name "":
<p />
--------------------------------------------------
strong:
Name "":
<strong />
Name "":
<strong />
Name "":
<strong />
--------------------------------------------------
table:
Name "난이도별 결과":
<table
aria-label="난이도별 결과"
/>
--------------------------------------------------
rowgroup:
Name "":
<thead />
Name "":
<tbody />
--------------------------------------------------
row:
Name "난이도 SNR 맞힌 문제":
<tr />
Name "1단계 SNR +6 dB 3 / 3":
<tr />
Name "2단계 SNR +3 dB 미진행":
<tr />
Name "3단계 SNR 0 dB 미진행":
<tr />
Name "4단계 SNR -3 dB 미진행":
<tr />
Name "5단계 SNR -6 dB 미진행":
<tr />
--------------------------------------------------
columnheader:
Name "난이도":
<th
scope="col"
/>
Name "SNR":
<th
scope="col"
/>
Name "맞힌 문제":
<th
scope="col"
/>
--------------------------------------------------
rowheader:
Name "1단계":
<th
scope="row"
/>
Name "2단계":
<th
scope="row"
/>
Name "3단계":
<th
scope="row"
/>
Name "4단계":
<th
scope="row"
/>
Name "5단계":
<th
scope="row"
/>
--------------------------------------------------
cell:
Name "SNR +6 dB":
<td />
Name "3 / 3":
<td />
Name "SNR +3 dB":
<td />
Name "미진행":
<td />
Name "SNR 0 dB":
<td />
Name "미진행":
<td />
Name "SNR -3 dB":
<td />
Name "미진행":
<td />
Name "SNR -6 dB":
<td />
Name "미진행":
<td />
--------------------------------------------------
button:
Name "다음 난이도 · 2단계":
<button
class="primary"
/>
Name "처음 화면으로":
<button
class="secondary"
/>
--------------------------------------------------
slider:
Name "전체 음량":
<input
id="volume"
max="100"
min="0"
type="range"
value="35"
/>
--------------------------------------------------
status:
Name "":
<output
for="volume"
/>
--------------------------------------------------
contentinfo:
Name "":
<footer
class="footer wrap"
/>
--------------------------------------------------
Ignored nodes: comments, script, style
<body>
<div>
<a
class="skip-link"
href="#main"
>
본문으로 건너뛰기
</a>
<header
class="header wrap"
>
<div
class="brand"
>
<span
aria-hidden="true"
class="brand-mark"
>
<i />
<i />
<i />
<i />
</span>
<h1>
단어를 맞춰라
</h1>
<span
class="version"
>
v0.2.3
</span>
</div>
<div
class="header-actions"
>
<span
class="little-dot"
/>
소리에 집중하는 시간
</div>
</header>
<main
class="wrap"
id="main"
tabindex="-1"
>
<section
class="results-panel panel"
>
<span
class="eyebrow"
>
세 번의 귀 기울임, 하나의 발견
</span>
<div
class="result-mascot"
>
<div
aria-hidden="true"
class="mascot small"
>
<span
class="ear left"
/>
<span
class="ear right"
/>
<span
class="eye left"
/>
<span
class="eye right"
/>
<span
class="smile"
/>
<b>
S
</b>
</div>
</div>
<h2
tabindex="-1"
>
1단계 문제 풀이를 마쳤어요.
</h2>
<p
class="muted"
>
이번 단계의 결과를 확인하고 다음 도전을 이어 가세요.
</p>
<p>
응답 
3
문항 · 정답 
3
문항
</p>
<div
class="stats"
>
<div>
<strong>
330
</strong>
<span>
총 점수
</span>
</div>
<div>
<strong>
100%
</strong>
<span>
정답률 · 
3/3
</span>
</div>
<div>
<strong>
3
<small>
회
</small>
</strong>
<span>
최고 연속 정답
</span>
</div>
</div>
<table
aria-label="난이도별 결과"
>
<thead>
<tr>
<th
scope="col"
>
난이도
</th>
<th
scope="col"
>
SNR
</th>
<th
scope="col"
>
맞힌 문제
</th>
</tr>
</thead>
<tbody>
<tr>
<th
scope="row"
>
1
단계
</th>
<td>
SNR +6 dB
</td>
<td>
3 / 3
</td>
</tr>
<tr>
<th
scope="row"
>
2
단계
</th>
<td>
SNR +3 dB
</td>
<td>
미진행
</td>
</tr>
<tr>
<th
scope="row"
>
3
단계
</th>
<td>
SNR 0 dB
</td>
<td>
미진행
</td>
</tr>
<tr>
<th
scope="row"
>
4
단계
</th>
<td>
SNR -3 dB
</td>
<td>
미진행
</td>
</tr>
<tr>
<th
scope="row"
>
5
단계
</th>
<td>
SNR -6 dB
</td>
<td>
미진행
</td>
</tr>
</tbody>
</table>
<p
class="muted"
>
정답마다 단계 × 100점 + 연속 정답 보너스 (문항별 최대
 
20
점, 라운드 합계 최대
 
30
점)
</p>
<button
class="primary"
>
다음 난이도 · 2단계
</button>
<button
class="secondary"
>
처음 화면으로
</button>
</section>
<div
class="volume-row"
>
<label
for="volume"
>
<span
aria-hidden="true"
>
◖))
</span>
 전체 음량
</label>
<input
id="volume"
max="100"
min="0"
type="range"
value="35"
/>
<output
for="volume"
>
35
%
</output>
</div>
</main>
<footer
class="footer wrap"
>
<p>
Designed by OZ at Heat-T Medical Inc.
</p>
<p>
청각적 주의·식별 게임 · 의료적 진단이나 치료를 제공하지 않습니다.
</p>
<span>
개인정보 수집 없이, 오직 플레이만.
</span>
<a
href="/AMBIENCE_NOTICES.md"
>
환경음 출처·라이선스
</a>
</footer>
</div>
</body>
❯ 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:269:14
267| }
268| expect(
269| screen.getByRole("heading", { name: /오늘의 소리 탐험/ }),
| ^
270| ).toBeInTheDocument();
271| expect(screen.getByText("100%")).toBeInTheDocument();
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
Test Files 1 failed | 1 passed (2)
Tests 1 failed | 26 passed (27)
Start at 08:48:05
Duration 4.93s (tests 79%, environment 13%, setup 4%, transform 2%, import 1%)
EXIT_CODE=1