Build the agent-native compute CRM platform
CI / verify (push) Successful in 3m6s

This commit is contained in:
2026-08-13 01:39:01 -07:00
parent bfd2f8d95a
commit 853bde2265
160 changed files with 61812 additions and 483 deletions
+36
View File
@@ -0,0 +1,36 @@
import { strict as assert } from 'node:assert';
import { describe, it } from 'node:test';
import type { Principal } from '../src/lib/auth';
import { AuthError, effectivePermissions, requireCapability } from '../src/lib/auth';
function principal(overrides: Partial<Principal> = {}): Principal {
return {
userId: '00000000-0000-0000-0000-000000000001',
email: 'seller@example.com',
name: 'Seller',
isPlatformAdmin: false,
teams: [{ team: 'demand', role: 'member' }],
via: 'jwt',
scopes: ['read', 'write'],
...overrides,
};
}
describe('capability enforcement', () => {
it('rejects a role grant from the wrong team', () => {
assert.throws(
() => requireCapability(principal(), 'deal:write', 'supply'),
(error: unknown) => error instanceof AuthError && error.code === 'insufficient_permission',
);
});
it('removes write grants from a read-only API key', () => {
const readOnly = principal({ via: 'api_key', scopes: ['read'] });
assert.deepEqual(effectivePermissions(readOnly), []);
assert.throws(
() => requireCapability(readOnly, 'deal:write', 'demand'),
(error: unknown) => error instanceof AuthError && error.code === 'insufficient_scope',
);
});
});