Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions docs/test-audit.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

What Waystation promises, and the tests that prove it. Newest first.

## 2026-11-11: the older suites' failures on the stand-in (K24)

Acceptance on the stand-in: 164/169, up from 161.
- **Fixed in the test, 3:**
- "chest opened for the crash test", and "after kill -9: the worn piece is still worn", which needs that chest. An earlier check left a nether portal at the meadow's spawn, and the crash test's bot landed on it, went to the Nether and lost its bed. The portal is now removed once its check is done, and the bed is set after the bot reaches the chest.
- "op can't break ground at a world gate" passed on both later runs: still flaky, not changed.
- **Need the real server's own setup, 5:** "admins keep /mvtp", "and can still send someone else", "creative: vanilla /tp still works", "nether portals still work" and "world gate is a BlueMap marker". They test that server's groups, creative permissions, portal linking and BlueMap config, not Waystation. The Server lead was asked to run them on a stopped copy at the next rehearsal. The OneBlock section waits for the same.

## 2026-11-11: other versions (K349)

- `return` on 26.2: 53/53. On 26.3: 50/50. On 26.3 the bots run with physics off, so the walking and jumping checks are replaced by a piston-push check. Both runs used the harness that now deletes its own servers, and neither left a folder behind.
Expand Down
6 changes: 5 additions & 1 deletion test/acceptance.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -583,6 +583,8 @@ await s.ask(`execute in meadow run setblock ${nx} ${ny} ${nz} nether_portal[axis
await s.ask(`execute in meadow run fill ${nx} ${ny} ${nz} ${nx} ${ny} ${nz} nether_portal[axis=x]`, 200)
await sleep(5500)
check('nether portals still work', await isIn(carl3, 'meadow_nether', 9000))
// Take the test portal away, so nobody who lands at the meadow's spawn later is sent to the Nether by it.
await s.ask(`execute in meadow run fill ${nx} ${ny} ${nz} ${nx} ${ny} ${nz} air replace nether_portal`, 300)
const tardisRegistered = (await s.ask('tardis version', 400)).length >= 0
if (s.log.some(l => /Enabling TARDIS/.test(l))) check('TARDIS still running', true)
else console.log(' NOTE: TARDIS is not installed on this copy, so it could not be checked.')
Expand Down Expand Up @@ -786,11 +788,13 @@ console.log('\n# A crash with the tribute chest open')
const cr = await bot('cracker')
await s.ask('lp user cracker parent add family', 300); await s.ask('mvtp cracker w:meadow', 2500)
await s.ask('clear cracker', 200); await s.ask('item replace entity cracker armor.chest with iron_chestplate', 300)
const crAt = await flat([cx - 11, cz + 3]); await s.ask(`execute in meadow run spawnpoint cracker ${crAt.x} ${crAt.y} ${crAt.z}`, 400)
// The chest only opens for a player with a bed in this world, and on a gate that isn't resting from an earlier move.
const crAt = await flat([cx - 11, cz + 3]); await unrest()
// Without a finished save a crash rolls back anything gained since the last one, Waystation or not.
await s.ask('save-all flush', 4000)
const rNow = await rdNow(); const [cdx, cdz] = dir[rNow.facing]
await s.ask(`execute in meadow run tp cracker ${rNow.x + .5 + cdx * 2} ${rNow.y} ${rNow.z + .5 + cdz * 2}`, 1500)
await bedAt(cr, crAt)
const crChest = Object.values(cr.entities).find(e => e.name === 'interaction' && Math.hypot(e.position.x - rNow.x, e.position.z - rNow.z) < 5)
const crOpened = new Promise(r => cr.once('windowOpen', r)); await cr.activateEntity(crChest)
const crWin = await Promise.race([crOpened, sleep(4000).then(() => null)])
Expand Down
Loading