M9: 게임 26종 30초 요약 카드·[?] 지금 할 수 있는 것 내용
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
45
apps/web/src/games/las-vegas/help.test.ts
Normal file
45
apps/web/src/games/las-vegas/help.test.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { expect, test } from 'bun:test';
|
||||
import { applyAction, setupGame, usersOf } from '../help-kit.test-util';
|
||||
import { GAMES } from '@bg/games';
|
||||
import { helpNow } from './help';
|
||||
|
||||
const users = usersOf(['A', 'B', 'C']);
|
||||
const view = (s: unknown, who: string | null) => GAMES['las-vegas']!.view(s, who) as any;
|
||||
|
||||
test('라스베가스: 굴리기 차례 / 기다리기 / 관전', () => {
|
||||
const { state } = setupGame('las-vegas', 3);
|
||||
const cur: string = state.seats[state.current];
|
||||
const other = state.seats.find((p: string) => p !== cur)!;
|
||||
const nick = users[cur]!.nickname;
|
||||
const mine = helpNow(view(state, cur), cur, users);
|
||||
expect(mine).toContain('[🎲 주사위 굴리기]');
|
||||
expect(mine).toContain('남은 주사위 8개');
|
||||
const wait = helpNow(view(state, other), other, users);
|
||||
expect(wait).toContain(`${nick}님이 주사위를 굴릴 차례예요`);
|
||||
expect(wait).toContain('내 주사위는 8개 남았어요');
|
||||
const spec = helpNow(view(state, null), null, users);
|
||||
expect(spec).toContain(`${nick}님이 주사위를 굴릴 차례예요`);
|
||||
expect(spec).toContain('1/4라운드');
|
||||
});
|
||||
|
||||
test('라스베가스: 굴린 뒤 숫자 고르기와 미리 보기', () => {
|
||||
const { state } = setupGame('las-vegas', 2);
|
||||
const cur: string = state.seats[state.current];
|
||||
const other = state.seats.find((p: string) => p !== cur)!;
|
||||
const s = applyAction('las-vegas', state, cur, { type: 'ROLL' });
|
||||
const t = helpNow(view(s, cur), cur, users);
|
||||
expect(t).toContain('개 놓기] 버튼');
|
||||
expect(t).toContain('지금 상황에서 놓으면');
|
||||
expect(t).toContain('일부만 놓을 수는 없어요');
|
||||
expect(helpNow(view(s, other), other, users)).toContain('놓을 숫자를 고르는 중이에요');
|
||||
// 2명: 흰 주사위 4개를 함께 가져요.
|
||||
expect(helpNow(view(state, other), other, users)).toContain('흰 주사위 4개 포함');
|
||||
});
|
||||
|
||||
test('라스베가스: 기권하면 구경', () => {
|
||||
const { state } = setupGame('las-vegas', 3);
|
||||
const cur: string = state.seats[state.current];
|
||||
const other = state.seats.find((p: string) => p !== cur)!;
|
||||
const s = applyAction('las-vegas', state, other, { type: 'CONCEDE' });
|
||||
expect(helpNow(view(s, other), other, users)).toContain('기권해서');
|
||||
});
|
||||
Reference in New Issue
Block a user