| import assert from 'node:assert/strict' | |
| import test from 'node:test' | |
| import { SACMOptimizer, type BridgedProject } from '../src/index.js' | |
| const cleanProject: BridgedProject = { | |
| sacmId: 'sacm_123456', | |
| legacyId: 'legacy-1', | |
| legacySource: 'github', | |
| name: 'Clean Project', | |
| payload: { data: { build: 'pass', owner: 'team' } }, | |
| importedAt: new Date().toISOString(), | |
| status: 'imported', | |
| integrityHmac: 'present', | |
| } | |
| test('produces quorum for clean bridged projects', () => { | |
| const optimizer = new SACMOptimizer('test-secret') | |
| const proof = optimizer.runConsensus(cleanProject) | |
| assert.equal(proof.quorum, true) | |
| assert.equal(proof.approvalCount, 5) | |
| assert.equal(proof.requiredQuorum, 3) | |
| assert.equal(optimizer.verifyProof(proof), true) | |
| }) | |
| test('records rejecting votes for credential-bearing payloads', () => { | |
| const optimizer = new SACMOptimizer('test-secret') | |
| const proof = optimizer.runConsensus({ | |
| ...cleanProject, | |
| payload: { data: { apiToken: 'blocked' } }, | |
| }) | |
| const sentinel = proof.votes.find(v => v.agent === 'SENTINEL') | |
| assert.equal(sentinel?.vote, 'reject') | |
| assert.match(sentinel?.rationale ?? '', /Credential-like/) | |
| }) | |
| test('refuses projects rejected by bridge', () => { | |
| const optimizer = new SACMOptimizer('test-secret') | |
| assert.throws(() => optimizer.runConsensus({ ...cleanProject, status: 'rejected' }), /rejected at bridge/) | |
| }) | |