import { test } from 'node:test' import assert from 'node:assert/strict' import { isStaffAccount, staffPermissions, NO_STAFF_ACCESS } from '../src/lib/staffAccess.js' import { COLLECTIONS, BUCKET } from '../scripts/setup-legal.mjs' test('isStaffAccount: nur Label mitarbeiter oder admin', () => { assert.equal(isStaffAccount({ labels: ['mitarbeiter'] }), true) assert.equal(isStaffAccount({ labels: ['admin'] }), true) assert.equal(isStaffAccount({ labels: [] }), false) assert.equal(isStaffAccount({}), false) assert.equal(isStaffAccount(null), false) }) test('staffPermissions: jede Aktion fuer beide Labels', () => { assert.deepEqual(staffPermissions('read', 'create'), [ 'read("label:mitarbeiter")', 'read("label:admin")', 'create("label:mitarbeiter")', 'create("label:admin")', ]) }) test('Hinweis nennt das Kundenportal', () => { assert.match(NO_STAFF_ACCESS, /project\.webklar\.com/) }) test('setup-legal: keine Rechte fuer users/any/guests mehr (ein erneuter Lauf darf nichts oeffnen)', () => { for (const perms of [...COLLECTIONS.map((c) => c.perms), BUCKET.perms]) { assert.ok(perms.length > 0) for (const p of perms) assert.match(p, /\("label:(mitarbeiter|admin)"\)$/, p) } })