test(bf-27e4): add beadsTimedOut test coverage
Some checks are pending
CI / test (18.x) (push) Waiting to run
CI / test (20.x) (push) Waiting to run
CI / test (22.x) (push) Waiting to run

Add test coverage for beadsTimedOut counter incrementing on
bead.released events with TimedOut/Deferred outcome.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
jedarden 2026-06-07 11:27:24 -04:00
parent 57ecce6598
commit 09b57aa21c

View file

@ -254,6 +254,51 @@ describe('InMemoryEventStore', () => {
expect(worker?.beadsCompleted).toBe(0);
});
it('should increment beadsTimedOut on bead.released with TimedOut outcome', () => {
store.add(createEvent({
worker: 'w-test',
msg: 'bead.released',
reason: 'release_success',
bead: 'bd-1',
outcome: 'TimedOut',
}));
const worker = store.getWorker('w-test');
expect(worker?.beadsCompleted).toBe(1);
expect(worker?.beadsTimedOut).toBe(1);
expect(worker?.beadsSucceeded).toBe(0);
});
it('should increment beadsTimedOut on bead.released with Deferred outcome', () => {
store.add(createEvent({
worker: 'w-test',
msg: 'bead.released',
reason: 'release_success',
bead: 'bd-1',
outcome: 'Deferred',
}));
const worker = store.getWorker('w-test');
expect(worker?.beadsCompleted).toBe(1);
expect(worker?.beadsTimedOut).toBe(1);
expect(worker?.beadsSucceeded).toBe(0);
});
it('should NOT increment beadsTimedOut on bead.released without TimedOut/Deferred outcome', () => {
store.add(createEvent({
worker: 'w-test',
msg: 'bead.released',
reason: 'release_success',
bead: 'bd-1',
outcome: 'Succeeded',
}));
const worker = store.getWorker('w-test');
expect(worker?.beadsCompleted).toBe(1);
expect(worker?.beadsTimedOut).toBe(0);
expect(worker?.beadsSucceeded).toBe(0); // beadsSucceeded only increments on bead.completed
});
it('should set currentBead from bead.claim.succeeded event', () => {
store.add(createEvent({ worker: 'w-test', msg: 'bead.claim.succeeded', bead: 'bd-abc123' }));