|
Фабрика тестовых фикстур + fail-fast предикатов waitFor
- testing/ (только для *.test.ts, в бандл не попадает):
combatWorld.ts (fakeMap/fakeWorld/run/far), gameState.ts (fakeState),
maps.ts (mapWithWall). EnemyAI/los/Interactables тесты переведены —
бойлерплейт фейковых карт/стейтов выведен из трёх файлов.
- GameAgent.waitFor: top-level обращения s.<ключ> сверяются с
AGENT_SNAPSHOT_KEYS до компиляции предиката; неизвестный ключ ->
{ ok: false, error: 'неизвестный ключ s.X', ticks: 0 } — опечатка
больше не тихий false на весь таймаут. predKeys — чистая функция,
тестируется в snapshot.test.ts.
- Список ключей: ENGINE_SNAPSHOT_KEYS (движок) + сценические + слой игры;
анти-дрейф тесты держат список согласованным со слоями снапшота.
Проверки: typecheck, 307 тестов (+6), agent check 45/45 (ни один чек
валидация не отторгла), smoke-act1. Доки: agent.md (поведение waitFor),
practices.md (проверка сценариев).
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
|---|
|
|
| apps/game/src/agent/GameAgent.ts |
|---|
| apps/game/src/agent/__tests__/snapshot.test.ts |
|---|
| apps/game/src/agent/snapshot.ts |
|---|
| apps/game/src/systems/__tests__/Interactables.test.ts |
|---|
| apps/game/src/systems/combat/__tests__/EnemyAI.test.ts |
|---|
| apps/game/src/systems/combat/__tests__/los.test.ts |
|---|
| apps/game/src/testing/combatWorld.ts 0 → 100644 |
|---|
| apps/game/src/testing/gameState.ts 0 → 100644 |
|---|
| apps/game/src/testing/maps.ts 0 → 100644 |
|---|
| docs/engine/agent.md |
|---|
| docs/engine/practices.md |
|---|
| packages/engine/src/agent/EngineAgent.ts |
|---|
| packages/engine/src/index.ts |
|---|