> find-word@0.1.0 test > vitest run tests/game.test.ts RUN v5.0.4 /home/hermes/worktrees/find-word-v0.1 ❯ tests/game.test.ts (6 tests | 6 failed) 14ms ❯ 출제와 정답 판정 (3) × 열 문제에 모든 유형·다섯 난이도·두 응답 방식을 섞는다 6ms × 선택한 응답 방식과 환경을 모든 문제에 적용한다 1ms × 한글 정규형·공백·문장부호만 정리하고 부분 정답은 인정하지 않는다 4ms ❯ 게임 상태·점수·경합 방지 (3) × 재생 완료 이전에는 답변·다음 문제를 허용하지 않으며 중복 채점을 막는다 1ms × 오디오 오류 후 재시도와 다시 듣기는 점수를 변경하지 않는다 0ms × 열 문제를 끝내면 정답률·연속 정답·단계별 결과를 집계한다 0ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 6 ⎯⎯⎯⎯⎯⎯⎯ FAIL tests/game.test.ts > 출제와 정답 판정 > 열 문제에 모든 유형·다섯 난이도·두 응답 방식을 섞는다 Error: 출제 미구현 ❯ createQuestions src/game.ts:17:106 15| } 16| export type Action = { type: 'PLAY' | 'STARTED' | 'ENDED' | 'NEXT' } |… 17| export function createQuestions(_seed: number, _mode: Mode, _environme… | ^ 18| export function normalizeAnswer(value: string): string { return value;… 19| export function isCorrect(input: string, answer: string): boolean { re… ❯ tests/game.test.ts:8:23 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/6]⎯ FAIL tests/game.test.ts > 출제와 정답 판정 > 선택한 응답 방식과 환경을 모든 문제에 적용한다 Error: 출제 미구현 ❯ createQuestions src/game.ts:17:106 15| } 16| export type Action = { type: 'PLAY' | 'STARTED' | 'ENDED' | 'NEXT' } |… 17| export function createQuestions(_seed: number, _mode: Mode, _environme… | ^ 18| export function normalizeAnswer(value: string): string { return value;… 19| export function isCorrect(input: string, answer: string): boolean { re… ❯ tests/game.test.ts:26:12 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/6]⎯ FAIL tests/game.test.ts > 출제와 정답 판정 > 한글 정규형·공백·문장부호만 정리하고 부분 정답은 인정하지 않는다 AssertionError: expected ' “사 과.” ' to be '사과' // Object.is equality Expected: "사과" Received: " “사 과.” " ❯ tests/game.test.ts:30:43 28| }); 29| it('한글 정규형·공백·문장부호만 정리하고 부분 정답은 인정하지 않는다', () => { 30| expect(normalizeAnswer(' “사 과.” ')).toBe('사과'); | ^ 31| expect(isCorrect('사과'.normalize('NFD'), '사과')).toBe(true); 32| expect(isCorrect('사과 또는 바다', '사과')).toBe(false); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/6]⎯ FAIL tests/game.test.ts > 게임 상태·점수·경합 방지 > 재생 완료 이전에는 답변·다음 문제를 허용하지 않으며 중복 채점을 막는다 Error: 출제 미구현 ❯ createQuestions src/game.ts:17:106 15| } 16| export type Action = { type: 'PLAY' | 'STARTED' | 'ENDED' | 'NEXT' } |… 17| export function createQuestions(_seed: number, _mode: Mode, _environme… | ^ 18| export function normalizeAnswer(value: string): string { return value;… 19| export function isCorrect(input: string, answer: string): boolean { re… ❯ tests/game.test.ts:40:29 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/6]⎯ FAIL tests/game.test.ts > 게임 상태·점수·경합 방지 > 오디오 오류 후 재시도와 다시 듣기는 점수를 변경하지 않는다 Error: 출제 미구현 ❯ createQuestions src/game.ts:17:106 15| } 16| export type Action = { type: 'PLAY' | 'STARTED' | 'ENDED' | 'NEXT' } |… 17| export function createQuestions(_seed: number, _mode: Mode, _environme… | ^ 18| export function normalizeAnswer(value: string): string { return value;… 19| export function isCorrect(input: string, answer: string): boolean { re… ❯ tests/game.test.ts:56:29 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/6]⎯ FAIL tests/game.test.ts > 게임 상태·점수·경합 방지 > 열 문제를 끝내면 정답률·연속 정답·단계별 결과를 집계한다 Error: 출제 미구현 ❯ createQuestions src/game.ts:17:106 15| } 16| export type Action = { type: 'PLAY' | 'STARTED' | 'ENDED' | 'NEXT' } |… 17| export function createQuestions(_seed: number, _mode: Mode, _environme… | ^ 18| export function normalizeAnswer(value: string): string { return value;… 19| export function isCorrect(input: string, answer: string): boolean { re… ❯ tests/game.test.ts:69:29 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/6]⎯ Test Files 1 failed (1) Tests 6 failed (6) Start at 04:56:04 Duration 872ms (environment 78%, setup 13%, transform 6%, tests 2%, worker 1%, import 1%)