Test code only: src/server/ideas.test.ts, commit 49ba3fe2
The tests took the first worker to start as the first prototype's worker. Since git prepares workspaces in the background, workers start in no set order. Under load, a handover now and then landed on the wrong prototype: "Wortmarke" showed no demo, and the base prototype showed one.
+ const workerOf = (cardId) => workers().find((w) => w.spec.cwd === board().row(cardId).workspace)!; - handOver(workers()[0]!, 'Wortmarke.', 'a'); + handOver(workerOf(all[0]!.id), 'Wortmarke.', 'a'); - const [w, wOther] = workers(); + const [w, wOther] = [workerOf(chosen!.id), workerOf(other!.id)]; - const [w] = workers(); + const w = workerOf(film!.id);
Two more tests made the same assumption: "Diesen Prototyp bauen" (it failed in one of my runs too) and "Als Projekt planen". Both are fixed as well.
| Run | Prototype tests |
|---|---|
| Worker order reversed on purpose | all three fixed lookups pass |
Full bun test --parallel, 3× after the fix | green 3 out of 3 |
ideas.test.ts 8× at the same time | 8 × 60 passed, 0 failed |
bun run typecheck | clean |
Other tests failed in the full runs, unrelated to this change: the settings tests in canvas.test.ts, browser skill, silent speech and clones. Each time it was a timeout after about 5 s, with the machine at a load average of 157. Run on their own, they pass.