TAP version 13 # Subtest: R6 G1 a granted user signs in, gets the user page and reaches the broker as itself ok 1 - R6 G1 a granted user signs in, gets the user page and reaches the broker as itself --- duration_ms: 99.922321 type: 'test' ... # Subtest: R6 G2 a subject with no live grant in this business is refused subject-unknown # Subtest: a listed user with no grant ok 1 - a listed user with no grant --- duration_ms: 92.761557 type: 'test' ... # Subtest: a grant in another business ok 2 - a grant in another business --- duration_ms: 92.20228 type: 'test' ... # Subtest: an expired grant ok 3 - an expired grant --- duration_ms: 63.082847 type: 'test' ... # Subtest: another user's grant ok 4 - another user's grant --- duration_ms: 71.423611 type: 'test' ... # Subtest: a sub in no file ok 5 - a sub in no file --- duration_ms: 53.437758 type: 'test' ... # Subtest: a file the loader refuses ok 6 - a file the loader refuses --- duration_ms: 88.763112 type: 'test' ... 1..6 ok 2 - R6 G2 a subject with no live grant in this business is refused subject-unknown --- duration_ms: 462.628046 type: 'test' ... # Subtest: R6 G3 a revoke counts on the next request: 401 and the session is gone # Subtest: grant removed not ok 1 - grant removed --- duration_ms: 41.439982 type: 'test' location: '/mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:199:13' failureType: 'testCodeFailure' error: |- Expected values to be strictly equal: + actual - expected + 'access-revoked' - 'sign-in required' code: 'ERR_ASSERTION' name: 'AssertionError' expected: 'sign-in required' actual: 'access-revoked' operator: 'strictEqual' stack: |- TestContext. (file:///mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:207:14) process.processTicksAndRejections (node:internal/process/task_queues:104:5) async Test.run (node:internal/test_runner/test:1409:7) async TestContext. (file:///mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:199:5) async Test.run (node:internal/test_runner/test:1409:7) async Test.processPendingSubtests (node:internal/test_runner/test:974:7) ... # Subtest: subject removed not ok 2 - subject removed --- duration_ms: 77.978266 type: 'test' location: '/mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:199:13' failureType: 'testCodeFailure' error: |- subject removed: {"rows":[{"id":"76c13564-e781-4b83-ad16-cd1f57b1a97f","at":"2026-10-23T06:34:07.869Z","name":"shared","repo":null},{"id":"3019668b-2d1d-47d9-a523-5e76b50de295","at":"2026-10-23T06:34:07.870Z","name":"private","repo":null}],"at":"2026-10-23T06:34:07.876Z"} 200 !== 401 code: 'ERR_ASSERTION' name: 'AssertionError' expected: 401 actual: 200 operator: 'strictEqual' stack: |- TestContext. (file:///mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:206:14) process.processTicksAndRejections (node:internal/process/task_queues:104:5) async Test.run (node:internal/test_runner/test:1409:7) async TestContext. (file:///mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:199:5) async Test.run (node:internal/test_runner/test:1409:7) async Test.processPendingSubtests (node:internal/test_runner/test:974:7) ... # Subtest: grant expired not ok 3 - grant expired --- duration_ms: 100.74638 type: 'test' location: '/mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:199:13' failureType: 'testCodeFailure' error: |- Expected values to be strictly equal: + actual - expected + 'access-revoked' - 'sign-in required' code: 'ERR_ASSERTION' name: 'AssertionError' expected: 'sign-in required' actual: 'access-revoked' operator: 'strictEqual' stack: |- TestContext. (file:///mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:207:14) process.processTicksAndRejections (node:internal/process/task_queues:104:5) async Test.run (node:internal/test_runner/test:1409:7) async TestContext. (file:///mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:199:5) async Test.run (node:internal/test_runner/test:1409:7) async Test.processPendingSubtests (node:internal/test_runner/test:974:7) ... # Subtest: file now refused not ok 4 - file now refused --- duration_ms: 64.871699 type: 'test' location: '/mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:199:13' failureType: 'testCodeFailure' error: |- Expected values to be strictly equal: + actual - expected + 'access-revoked' - 'sign-in required' code: 'ERR_ASSERTION' name: 'AssertionError' expected: 'sign-in required' actual: 'access-revoked' operator: 'strictEqual' stack: |- TestContext. (file:///mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:207:14) process.processTicksAndRejections (node:internal/process/task_queues:104:5) async Test.run (node:internal/test_runner/test:1409:7) async TestContext. (file:///mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:199:5) async Test.run (node:internal/test_runner/test:1409:7) async Test.processPendingSubtests (node:internal/test_runner/test:974:7) ... 1..4 not ok 3 - R6 G3 a revoke counts on the next request: 401 and the session is gone --- duration_ms: 285.771094 type: 'test' location: '/mnt/storage/scratch/launchpad-r294/wt/packages/webui/tests/granted-user.test.mjs:192:1' failureType: 'subtestsFailed' error: '4 subtests failed' code: 'ERR_TEST_FAILURE' ... # Subtest: R6 G4 every owner route answers 403 owner-only before any bus call ok 4 - R6 G4 every owner route answers 403 owner-only before any bus call --- duration_ms: 120.543137 type: 'test' ... # Subtest: R6 G5 the bus refuses every owner verb over the user transport on its own ok 5 - R6 G5 the bus refuses every owner verb over the user transport on its own --- duration_ms: 101.715208 type: 'test' ... # Subtest: R6 G9 a user chat sends only the plugins read over the owner transport ok 6 - R6 G9 a user chat sends only the plugins read over the owner transport --- duration_ms: 44.655459 type: 'test' ... # Subtest: R6 G6 the user page holds the notice word for word ok 7 - R6 G6 the user page holds the notice word for word --- duration_ms: 78.519066 type: 'test' ... # Subtest: R6 G7 the hub label and plain peer links render from config on both pages ok 8 - R6 G7 the hub label and plain peer links render from config on both pages --- duration_ms: 747.453516 type: 'test' ... # Subtest: R6 G8 userCall spawns user-cli directly with the user nonce, no human nonce, and the user request ok 9 - R6 G8 userCall spawns user-cli directly with the user nonce, no human nonce, and the user request --- duration_ms: 37.353078 type: 'test' ... 1..9 # tests 19 # suites 0 # pass 14 # fail 5 # cancelled 0 # skipped 0 # todo 0 # duration_ms 2105.529578 # stderr