Split The code is public; the app answers only to the crew.

The check is red on `main` and production is not serving: one test steps a whole match and times out at 5 s #171

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

Pushed.

shipped merged

opened this

Pushed.

The half-time test cut its setup rather than its assertion: instead of stepping a full match for real (up to 57,600 ticks / ~3.9s), it forces world.match.timer to one tick before each update call, so the same freeze→live→over→freeze code path in match.ts and the same half-time swap handler in world.ts still run for real — just without the per-tick cost of realistic rounds (kills, movement, the bomb clock). The test still asserts world.match.round actually crossed half time before checking the restore, and the swap/round-trip assertions are unchanged.

Also added explicit timeouts (10s, twice the 5s default) to two other tests that genuinely play a match/round out for real — a match plays itself to the end inside its own time and the carrier gets the bomb down inside the round clock — so a slower box makes them slow, not red. The per-map reaches a result tests already carried an explicit 30s timeout; saved.test.ts has no matching loop, so it's untouched.

Cost, bun test --reporter=junit: 20.9s total before → 17.3s after. The half-time test dropped off the slow list entirely (3.9s → <0.1s); the new slowest test is a seeded headless match on de_cinder reaches a result at ~2.8s, well inside its existing 30s budget. bun run check (typecheck + full suite) passes, 694/694.

No changes to src/client/world.ts or any shipped module — only the two test files.

Closes #166

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs