fuzzyworld

explodorama / CI

CI failed: 92cc4ee3e420

Branch main · commit · started 2026-11-02 23:04:02 UTC · 1m 34s · runner truenas

✗ test · test · failed · 1m 20s · exit code 1
fw-runner truenas: test (test) in node:22
$ npm ci

added 47 packages, and audited 48 packages in 14s

13 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
$ npm test

> explodorama@0.1.0 test
> vitest run


 RUN  v5.0.5 /builds/explodorama

 ✓ test/padMap.test.ts (59 tests) 36ms
 ✓ test/gamepad.test.ts (30 tests) 29ms
 ✓ test/charges.test.ts (33 tests) 48ms
 ✓ test/enemies.test.ts (153 tests) 258ms
 ✓ test/powerups.test.ts (131 tests) 248ms
 ✓ test/hazards.test.ts (17 tests) 137ms
 ✓ test/oil-slide.test.ts (24 tests) 38ms
 ✓ test/options.test.ts (116 tests) 119ms
 ✓ test/new-powers.test.ts (16 tests) 28ms
 ✓ test/padDialog.test.ts (19 tests) 15ms
 ✓ test/keyCursor.test.ts (23 tests) 20ms
 ✓ test/padTiles.test.ts (21 tests) 27ms
 ✓ test/picks.test.ts (20 tests) 36ms
 ✓ test/autopilot.test.ts (13 tests) 257ms
 ✓ test/farTiles.test.ts (27 tests) 470ms
 ✓ test/padGlyph.test.ts (14 tests) 22ms
 ✓ test/new-enemies.test.ts (13 tests) 37ms
 ✓ test/q75.test.ts (11 tests) 58ms
 ✓ test/path.test.ts (15 tests) 17ms
 ✓ test/turn.test.ts (12 tests) 24ms
 ❯ test/keyDemo.test.ts (68 tests | 1 failed) 54803ms
   ❯ keyPlan on the demo scenes (53)
     ✓ tapMove: every turn has keys that, replayed through the game's rules, play that action on that tile 39ms
     ✓ bombButton: every turn has keys that, replayed through the game's rules, play that action on that tile 63ms
     ✓ wait: every turn has keys that, replayed through the game's rules, play that action on that tile 445ms
     ✓ kill: every turn has keys that, replayed through the game's rules, play that action on that tile 2218ms
     ✓ arrows: every turn has keys that, replayed through the game's rules, play that action on that tile 1530ms
     ✓ escape: every turn has keys that, replayed through the game's rules, play that action on that tile 82ms
     ✓ chain: every turn has keys that, replayed through the game's rules, play that action on that tile 3434ms
     ✓ lingering: every turn has keys that, replayed through the game's rules, play that action on that tile 299ms
     ✓ enemies: every turn has keys that, replayed through the game's rules, play that action on that tile 59ms
     ✓ coins: every turn has keys that, replayed through the game's rules, play that action on that tile 2523ms
     ✓ gem: every turn has keys that, replayed through the game's rules, play that action on that tile 944ms
     ✓ bombPlus: every turn has keys that, replayed through the game's rules, play that action on that tile 1529ms
     ✓ firePlus: every turn has keys that, replayed through the game's rules, play that action on that tile 99ms
     ✓ fusePlus: every turn has keys that, replayed through the game's rules, play that action on that tile 527ms
     ✓ run: every turn has keys that, replayed through the game's rules, play that action on that tile 750ms
     ✓ kick: every turn has keys that, replayed through the game's rules, play that action on that tile 692ms
     ✓ throw: every turn has keys that, replayed through the game's rules, play that action on that tile 192ms
     ✓ teleport: every turn has keys that, replayed through the game's rules, play that action on that tile 1137ms
     ✓ diagonal: every turn has keys that, replayed through the game's rules, play that action on that tile 1323ms
     ✓ detonate: every turn has keys that, replayed through the game's rules, play that action on that tile 81ms
     ✓ rpg: every turn has keys that, replayed through the game's rules, play that action on that tile 215ms
     ✓ proximity: every turn has keys that, replayed through the game's rules, play that action on that tile 81ms
     ✓ slide: every turn has keys that, replayed through the game's rules, play that action on that tile 30ms
     ✓ icbm: every turn has keys that, replayed through the game's rules, play that action on that tile 428ms
     ✓ wallPass: every turn has keys that, replayed through the game's rules, play that action on that tile 71ms
     ✓ bombPass: every turn has keys that, replayed through the game's rules, play that action on that tile 51ms
     ✓ flamePass: every turn has keys that, replayed through the game's rules, play that action on that tile 124ms
     ✓ star: every turn has keys that, replayed through the game's rules, play that action on that tile 602ms
     ✓ pierce: every turn has keys that, replayed through the game's rules, play that action on that tile 3159ms
     ✓ power: every turn has keys that, replayed through the game's rules, play that action on that tile 3267ms
     ✓ nuke: every turn has keys that, replayed through the game's rules, play that action on that tile 2407ms
     ✓ acid: every turn has keys that, replayed through the game's rules, play that action on that tile 554ms
     ✓ rubble: every turn has keys that, replayed through the game's rules, play that action on that tile 2122ms
     ✓ shield: every turn has keys that, replayed through the game's rules, play that action on that tile 234ms
     ✓ freeze: every turn has keys that, replayed through the game's rules, play that action on that tile 4154ms
     × decoy: every turn has keys that, replayed through the game's rules, play that action on that tile 9131ms
     ✓ exit: every turn has keys that, replayed through the game's rules, play that action on that tile 3305ms
     ✓ doorBlast: every turn has keys that, replayed through the game's rules, play that action on that tile 1160ms
     ✓ bush: every turn has keys that, replayed through the game's rules, play that action on that tile 348ms
     ✓ bushFire: every turn has keys that, replayed through the game's rules, play that action on that tile 1165ms
     ✓ metal: every turn has keys that, replayed through the game's rules, play that action on that tile 987ms
     ✓ oil: every turn has keys that, replayed through the game's rules, play that action on that tile 879ms
     ✓ oilSlide: every turn has keys that, replayed through the game's rules, play that action on that tile 34ms
     ✓ spikes: every turn has keys that, replayed through the game's rules, play that action on that tile 52ms
     ✓ barrel: every turn has keys that, replayed through the game's rules, play that action on that tile 1543ms
     ✓ dieIntoBlast: every turn has keys that, replayed through the game's rules, play that action on that tile 46ms
     ✓ dieNotFar: every turn has keys that, replayed through the game's rules, play that action on that tile 42ms
     ✓ dieBlockedIn: every turn has keys that, replayed through the game's rules, play that action on that tile 217ms
     ✓ dieChain: every turn has keys that, replayed through the game's rules, play that action on that tile 294ms
     ✓ dieEnemy: every turn has keys that, replayed through the game's rules, play that action on that tile 43ms
     ✓ dieDetonator: every turn has keys that, replayed through the game's rules, play that action on that tile 26ms
     ✓ dieRun: every turn has keys that, replayed through the game's rules, play that action on that tile 47ms
     ✓ every scene the keyboard plays, whose touch caption talks of a tap, finger or hold, has a key caption 1ms
   ✓ keyPlan (5)
     ✓ Wait is the Space key 0ms
     ✓ a step next to you is one plain arrow 0ms
     ✓ a bomb next to you is B, then the arrow 0ms
     ✓ a far tile the nearer ones hide from M and the arrow is Shift + arrows (the first wakes the cursor), then the key 1ms
     ✓ choices and picks are left to the dialogs; an action with no tile has no plan 0ms
   ✓ runKeys (3)
     ✓ plays nothing before the last press, or from keys that do nothing 0ms
     ✓ the first Shift + arrow only shows the cursor on the player; the next hops it 0ms
     ✓ Space away from the cursor on the player does not wait 0ms
   ✓ pressParts (2)
     ✓ a hop holds Shift, a pan Alt; the charge key is V 0ms
     ✓ every part has a picture 0ms
   ✓ keyCaptionHtml (3)
     ✓ turns every token into a key picture 0ms
     ✓ throws on an unknown token 1ms
     ✓ every scene caption and still-scene caption draws 2ms
   ✓ keyDemoOrder (2)
     ✓ puts the controls first, then the keyboard's own scenes 0ms
     ✓ drops the touch-only scenes and the ones that need a dialog 1ms
 ❯ test/padDemo.test.ts (67 tests | 1 failed) 56004ms
   ❯ padPlan on the demo scenes (53)
     ✓ tapMove: every turn has a plan whose presses end on the action's tile with the face button that does it 55ms
     ✓ bombButton: every turn has a plan whose presses end on the action's tile with the face button that does it 67ms
     ✓ wait: every turn has a plan whose presses end on the action's tile with the face button that does it 404ms
     ✓ kill: every turn has a plan whose presses end on the action's tile with the face button that does it 2478ms
     ✓ arrows: every turn has a plan whose presses end on the action's tile with the face button that does it 1514ms
     ✓ escape: every turn has a plan whose presses end on the action's tile with the face button that does it 116ms
     ✓ chain: every turn has a plan whose presses end on the action's tile with the face button that does it 3532ms
     ✓ lingering: every turn has a plan whose presses end on the action's tile with the face button that does it 317ms
     ✓ enemies: every turn has a plan whose presses end on the action's tile with the face button that does it 75ms
     ✓ coins: every turn has a plan whose presses end on the action's tile with the face button that does it 2526ms
     ✓ gem: every turn has a plan whose presses end on the action's tile with the face button that does it 996ms
     ✓ bombPlus: every turn has a plan whose presses end on the action's tile with the face button that does it 1593ms
     ✓ firePlus: every turn has a plan whose presses end on the action's tile with the face button that does it 119ms
     ✓ fusePlus: every turn has a plan whose presses end on the action's tile with the face button that does it 554ms
     ✓ run: every turn has a plan whose presses end on the action's tile with the face button that does it 720ms
     ✓ kick: every turn has a plan whose presses end on the action's tile with the face button that does it 760ms
     ✓ throw: every turn has a plan whose presses end on the action's tile with the face button that does it 200ms
     ✓ teleport: every turn has a plan whose presses end on the action's tile with the face button that does it 1170ms
     ✓ diagonal: every turn has a plan whose presses end on the action's tile with the face button that does it 1365ms
     ✓ detonate: every turn has a plan whose presses end on the action's tile with the face button that does it 82ms
     ✓ rpg: every turn has a plan whose presses end on the action's tile with the face button that does it 218ms
     ✓ proximity: every turn has a plan whose presses end on the action's tile with the face button that does it 72ms
     ✓ slide: every turn has a plan whose presses end on the action's tile with the face button that does it 33ms
     ✓ icbm: every turn has a plan whose presses end on the action's tile with the face button that does it 385ms
     ✓ wallPass: every turn has a plan whose presses end on the action's tile with the face button that does it 85ms
     ✓ bombPass: every turn has a plan whose presses end on the action's tile with the face button that does it 77ms
     ✓ flamePass: every turn has a plan whose presses end on the action's tile with the face button that does it 141ms
     ✓ star: every turn has a plan whose presses end on the action's tile with the face button that does it 548ms
     ✓ pierce: every turn has a plan whose presses end on the action's tile with the face button that does it 3210ms
     ✓ power: every turn has a plan whose presses end on the action's tile with the face button that does it 3298ms
     ✓ nuke: every turn has a plan whose presses end on the action's tile with the face button that does it 2454ms
     ✓ acid: every turn has a plan whose presses end on the action's tile with the face button that does it 568ms
     ✓ rubble: every turn has a plan whose presses end on the action's tile with the face button that does it 2237ms
     ✓ shield: every turn has a plan whose presses end on the action's tile with the face button that does it 250ms
     ✓ freeze: every turn has a plan whose presses end on the action's tile with the face button that does it 4200ms
     × decoy: every turn has a plan whose presses end on the action's tile with the face button that does it 9142ms
     ✓ exit: every turn has a plan whose presses end on the action's tile with the face button that does it 3281ms
     ✓ doorBlast: every turn has a plan whose presses end on the action's tile with the face button that does it 1187ms
     ✓ bush: every turn has a plan whose presses end on the action's tile with the face button that does it 374ms
     ✓ bushFire: every turn has a plan whose presses end on the action's tile with the face button that does it 1171ms
     ✓ metal: every turn has a plan whose presses end on the action's tile with the face button that does it 996ms
     ✓ oil: every turn has a plan whose presses end on the action's tile with the face button that does it 839ms
     ✓ oilSlide: every turn has a plan whose presses end on the action's tile with the face button that does it 47ms
     ✓ spikes: every turn has a plan whose presses end on the action's tile with the face button that does it 58ms
     ✓ barrel: every turn has a plan whose presses end on the action's tile with the face button that does it 1638ms
     ✓ dieIntoBlast: every turn has a plan whose presses end on the action's tile with the face button that does it 63ms
     ✓ dieNotFar: every turn has a plan whose presses end on the action's tile with the face button that does it 49ms
     ✓ dieBlockedIn: every turn has a plan whose presses end on the action's tile with the face button that does it 251ms
     ✓ dieChain: every turn has a plan whose presses end on the action's tile with the face button that does it 320ms
     ✓ dieEnemy: every turn has a plan whose presses end on the action's tile with the face button that does it 53ms
     ✓ dieDetonator: every turn has a plan whose presses end on the action's tile with the face button that does it 36ms
     ✓ dieRun: every turn has a plan whose presses end on the action's tile with the face button that does it 59ms
     ✓ every scene the pad plays, whose touch caption talks of a tap, finger or hold, has a pad caption 1ms
   ✓ cursorPath (3)
     ✓ is empty to the player's own tile 1ms
     ✓ one press to a tile next to the player 0ms
     ✓ null for a tile that is not actionable 0ms
   ✓ padPlan (5)
     ✓ Wait is one press, with the cursor on the player 0ms
     ✓ a step is a direction, then Move 0ms
     ✓ choices and picks are left to the dialogs 0ms
     ✓ a tile where no face button does the action has no plan (the pad picks per button: a tile with two options is not shown) 3ms
     ✓ an action with no tile, or a tile nothing can be done on, has no plan 0ms
   ✓ padCaptions (2)
     ✓ every scene caption and still-scene caption draws, with no unknown picture name 3ms
     ✓ the charge scenes name the charge button 0ms
   ✓ pressPart (1)
     ✓ maps the four directions, the face buttons and the rest to the controller's parts 0ms
   ✓ padHops (1)
     ✓ hops to tiles not been on, the first from the player, none twice 1ms
   ✓ padDemoOrder (2)
     ✓ puts the pad scenes first 0ms
     ✓ drops the touch-only scenes and the ones that need a dialog 1ms
 ✓ test/targetLabel.test.ts (11 tests) 27ms
 ✓ test/shop.test.ts (8 tests) 36ms
 ✓ test/test-scenes.test.ts (18 tests) 59ms
 ✓ test/spatial.test.ts (10 tests) 9ms
 ✓ test/danger.test.ts (4 tests) 792ms
   ✓ danger overlay (1)
     ✓ "now" is exactly what burns if the player waits, and "next" what burns the turn after 754ms
 ✓ test/padHold.test.ts (8 tests) 9ms
 ✓ test/scores.test.ts (5 tests) 15ms
 ✓ test/animation.test.ts (5 tests) 18ms
 ✓ test/changelog.test.ts (7 tests) 24ms
 ✓ test/padTarget.test.ts (8 tests) 13ms
 ✓ test/demoInput.test.ts (5 tests) 12ms
 ✓ test/padPlaces.test.ts (3 tests) 13ms
 ✓ test/explosions.test.ts (4 tests) 12ms
 ✓ test/routePreview.test.ts (8 tests) 193ms
 ✓ test/reveal.test.ts (5 tests) 9ms
 ✓ test/levelgen.test.ts (201 tests) 261ms
 ❯ test/demo.test.ts (62 tests | 1 failed) 55357ms
   ❯ demo scenes (62)
     ✓ tapMove: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 32ms
     ✓ holdBomb: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 48ms
     ✓ bombButton: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 42ms
     ✓ wait: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 361ms
     ✓ autoMove: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 65ms
     ✓ kill: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1814ms
     ✓ arrows: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1255ms
     ✓ escape: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 75ms
     ✓ chain: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 3227ms
     ✓ lingering: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 285ms
     ✓ enemies: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 59ms
     ✓ coins: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 2449ms
     ✓ gem: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 950ms
     ✓ bombPlus: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1663ms
     ✓ firePlus: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 99ms
     ✓ fusePlus: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 514ms
     ✓ run: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 725ms
     ✓ kick: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 665ms
     ✓ throw: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 167ms
     ✓ teleport: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1204ms
     ✓ diagonal: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1325ms
     ✓ detonate: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 121ms
     ✓ rpg: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 188ms
     ✓ proximity: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 72ms
     ✓ slide: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 33ms
     ✓ icbm: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 317ms
     ✓ wallPass: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 62ms
     ✓ bombPass: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 48ms
     ✓ flamePass: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 125ms
     ✓ star: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 505ms
     ✓ pierce: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 2887ms
     ✓ power: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 3140ms
     ✓ nuke: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 2347ms
     ✓ acid: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 703ms
     ✓ rubble: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1873ms
     ✓ shield: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 210ms
     ✓ freeze: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 3916ms
     × decoy: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 8813ms
     ✓ chargeSwap: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 52ms
     ✓ exit: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 3204ms
     ✓ doorBlast: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1164ms
     ✓ lastEnemy: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 275ms
     ✓ crate: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 54ms
     ✓ rainbowGem: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 36ms
     ✓ immortal: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 33ms
     ✓ pillar: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 49ms
     ✓ bush: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 363ms
     ✓ bushFire: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1128ms
     ✓ metal: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 999ms
     ✓ oil: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 879ms
     ✓ oilSlide: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 68ms
     ✓ spikes: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 80ms
     ✓ barrel: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 1577ms
     ✓ dieIntoBlast: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 46ms
     ✓ dieNotFar: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 42ms
     ✓ dieBlockedIn: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 294ms
     ✓ dieChain: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 357ms
     ✓ dieEnemy: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 45ms
     ✓ dieDetonator: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 28ms
     ✓ dieRun: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene) 35ms
     ✓ rubble: the ceiling falls at the moment, and the aftermath shows it 962ms
     ✓ the same seed gives the same scene 1194ms
 ✓ test/sprites.test.ts (2 tests) 11ms
 ✓ test/holdRing.test.ts (4 tests) 6ms
 ✓ test/toast.test.ts (3 tests) 6ms
 ✓ test/channel.test.ts (2 tests) 8ms
 ✓ test/version.test.ts (1 test) 5ms
 ✓ test/balance.test.ts (3 tests) 1083ms
   ✓ the balance lab (3)
     ✓ the Careful bot clears the first levels of a seed without stalling 585ms
     ✓ the same seed and bot play the same run 493ms

⎯⎯⎯⎯⎯⎯⎯ Failed Tests 3 ⎯⎯⎯⎯⎯⎯⎯

 FAIL  test/demo.test.ts > demo scenes > decoy: found, its moment 3-6 turns in from a calm start, each turn played by its gesture, the player alive (or dying at the end of a death scene)
Error: Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
 ❯ test/demo.test.ts:39:5
     37| describe('demo scenes', () => {
     38|   for (const kind of SCENE_KINDS.filter((k) => !SCENES[k].fixed)) {
     39|     it(`${kind}: found, its moment ${MIN_STEPS}-${MAX_STEPS} turns in …
       |     ^
     40|       for (let seed = 1; seed <= 6; seed++) {
     41|         const scene = generateScene(kind, seed)!

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/3]⎯

 FAIL  test/keyDemo.test.ts > keyPlan on the demo scenes > decoy: every turn has keys that, replayed through the game's rules, play that action on that tile
Error: Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
 ❯ test/keyDemo.test.ts:14:5
     12| describe('keyPlan on the demo scenes', () => {
     13|   for (const kind of KINDS) {
     14|     it(`${kind}: every turn has keys that, replayed through the game's…
       |     ^
     15|       for (let seed = 1; seed <= 6; seed++) {
     16|         const scene = generateScene(kind, seed)!

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/3]⎯

 FAIL  test/padDemo.test.ts > padPlan on the demo scenes > decoy: every turn has a plan whose presses end on the action's tile with the face button that does it
Error: Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
 ❯ test/padDemo.test.ts:14:5
     12| describe('padPlan on the demo scenes', () => {
     13|   for (const kind of KINDS) {
     14|     it(`${kind}: every turn has a plan whose presses end on the action…
       |     ^
     15|       for (let seed = 1; seed <= 6; seed++) {
     16|         const scene = generateScene(kind, seed)!

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/3]⎯


 Test Files  3 failed | 42 passed (45)
      Tests  3 failed | 1286 passed (1289)
   Start at  23:04:31
   Duration  63.14s (tests 94%, import 3%, transform 3%)

– pages · deploy · skipped · 0s · an earlier job failed