agent-ecosystem/test/main/services/team/TeamProvisioningServiceDeterministicBootstrapEvents.test.ts

63 lines
1.6 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { shouldAcceptDeterministicBootstrapEvent } from '@main/services/team/TeamProvisioningService';
describe('TeamProvisioningService deterministic bootstrap event ordering', () => {
it('accepts newer in-order bootstrap events', () => {
expect(
shouldAcceptDeterministicBootstrapEvent({
runId: 'run-1',
teamName: 'atlas-hq',
lastSeq: 2,
msg: {
run_id: 'run-1',
team_name: 'atlas-hq',
seq: 3,
},
})
).toEqual({ accept: true, nextSeq: 3 });
});
it('rejects replayed or out-of-order bootstrap events', () => {
expect(
shouldAcceptDeterministicBootstrapEvent({
runId: 'run-1',
teamName: 'atlas-hq',
lastSeq: 3,
msg: {
run_id: 'run-1',
team_name: 'atlas-hq',
seq: 2,
},
})
).toEqual({ accept: false, nextSeq: 3 });
});
it('rejects bootstrap events for another run or team', () => {
expect(
shouldAcceptDeterministicBootstrapEvent({
runId: 'run-1',
teamName: 'atlas-hq',
lastSeq: 1,
msg: {
run_id: 'run-2',
team_name: 'atlas-hq',
seq: 2,
},
})
).toEqual({ accept: false, nextSeq: 1 });
expect(
shouldAcceptDeterministicBootstrapEvent({
runId: 'run-1',
teamName: 'atlas-hq',
lastSeq: 1,
msg: {
run_id: 'run-1',
team_name: 'forge-labs',
seq: 2,
},
})
).toEqual({ accept: false, nextSeq: 1 });
});
});