import test from 'node:test'; import assert from 'node:assert/strict'; import { busBusiness } from '../src/business.mjs'; test('S1 adapter takes resolved limits and refs, rejects mismatched instance, never mutates input', () => { const business = { id: 'demo', human: 'jason', roles: { coder: { definition: 'coder', credentials: { gitea: { file: '/unused', rotateBy: '2099-01-01' } } }, }, }; const resolved = { coder: { business: 'demo', instance: 'coder', definition: 'coder', limits: { authority: { withinRole: ['message.send'], crossRole: [] } }, credentials: {}, }, }; const before = structuredClone(business), b = busBusiness(business, resolved); assert.deepEqual(b.roles.coder.authority, resolved.coder.limits.authority); assert.deepEqual(b.roles.coder.credentials, {}); assert.deepEqual(business, before); resolved.coder.instance = 'pm'; assert.throws(() => busBusiness(business, resolved), /invalid-resolution/); });