Фабрика тестовых фикстур + 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>
1 parent 16b59d8 commit 39c6349dfc90325237f9b3a750cf0dd75bd7a20d
@root root authored 1 day ago
Showing 13 changed files
View
apps/game/src/agent/GameAgent.ts
View
apps/game/src/agent/__tests__/snapshot.test.ts
View
apps/game/src/agent/snapshot.ts
View
apps/game/src/systems/__tests__/Interactables.test.ts
View
apps/game/src/systems/combat/__tests__/EnemyAI.test.ts
View
apps/game/src/systems/combat/__tests__/los.test.ts
View
apps/game/src/testing/combatWorld.ts 0 → 100644
View
apps/game/src/testing/gameState.ts 0 → 100644
View
apps/game/src/testing/maps.ts 0 → 100644
View
docs/engine/agent.md
View
docs/engine/practices.md
View
packages/engine/src/agent/EngineAgent.ts
View
packages/engine/src/index.ts