Updates
Release rolling / release (push) Has been cancelled

This commit is contained in:
Raven Scott
2026-07-14 20:25:17 -04:00
parent bd460913bf
commit cb0b59f5c3
9 changed files with 211 additions and 12 deletions
+3
View File
@@ -102,8 +102,11 @@ test('viewer can search images (read-only)', (t) => {
test('invites are admin-only (not viewer or operator)', (t) => {
t.ok(roleAllows(Roles.admin, Methods.invitePeer))
t.ok(roleAllows(Roles.admin, Methods.listInvites))
t.ok(roleAllows(Roles.admin, Methods.deleteInvite))
t.absent(roleAllows(Roles.viewer, Methods.invitePeer))
t.absent(roleAllows(Roles.viewer, Methods.listInvites))
t.absent(roleAllows(Roles.viewer, Methods.deleteInvite))
t.absent(roleAllows(Roles.operator, Methods.invitePeer))
t.absent(roleAllows(Roles.operator, Methods.listInvites))
t.absent(roleAllows(Roles.operator, Methods.deleteInvite))
})
+12
View File
@@ -16,6 +16,7 @@ const {
redeemInvite,
redeemCapability,
mintCapability,
deleteInvite,
revokePeer,
isPeerAllowed,
isPeerRevoked,
@@ -93,3 +94,14 @@ test('seed/capability auth modes bypass allowlist', (t) => {
t.ok(isPeerAllowed(unknown, { authMode: 'capability' }))
delete process.env.PEARDOCK_PEER_ALLOWLIST
})
test('deleteInvite revokes capability jti so redeem fails', (t) => {
const peerD = '55'.repeat(32)
const cap = mintCapability({ role: 'operator', maxUses: 5, ttlHours: 1 })
t.ok(listInvites().some((i) => i.jti === cap.jti))
const res = deleteInvite({ jti: cap.jti })
t.ok(res.success)
t.ok(res.deleted.length > 0)
t.absent(listInvites().some((i) => i.jti === cap.jti))
t.exception(() => redeemCapability(cap.capability, peerD))
})