fix(bd-j1t): update tests for uppercase state labels + canonical event types

WorkerDetail now renders statuses in uppercase (ACTIVE/IDLE/ERROR) to
match NeedleState labels. Store only recognizes canonical event types
(bead.completed, not "Task completed") for state transitions.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
jedarden 2026-04-21 14:14:45 -04:00
parent 039f692fb4
commit 006e0f5b59
2 changed files with 8 additions and 8 deletions

View file

@ -75,7 +75,7 @@ describe('WorkerDetail', () => {
<WorkerDetail worker={worker} onClose={mockOnClose} />
);
expect(screen.getByText('active')).toBeInTheDocument();
expect(screen.getByText('ACTIVE')).toBeInTheDocument();
expect(container.querySelector('.worker-status.active')).toBeInTheDocument();
expect(container.querySelector('.worker-status-icon.active')).toBeInTheDocument();
});
@ -87,7 +87,7 @@ describe('WorkerDetail', () => {
<WorkerDetail worker={worker} onClose={mockOnClose} />
);
expect(screen.getByText('idle')).toBeInTheDocument();
expect(screen.getByText('IDLE')).toBeInTheDocument();
expect(container.querySelector('.worker-status.idle')).toBeInTheDocument();
expect(container.querySelector('.worker-status-icon.idle')).toBeInTheDocument();
});
@ -99,7 +99,7 @@ describe('WorkerDetail', () => {
<WorkerDetail worker={worker} onClose={mockOnClose} />
);
expect(screen.getByText('error')).toBeInTheDocument();
expect(screen.getByText('ERROR')).toBeInTheDocument();
expect(container.querySelector('.worker-status.error')).toBeInTheDocument();
expect(container.querySelector('.worker-status-icon.error')).toBeInTheDocument();
});
@ -495,7 +495,7 @@ describe('WorkerDetail', () => {
expect(screen.getByText('minimal-worker')).toBeInTheDocument();
expect(screen.getByText('0')).toBeInTheDocument();
expect(screen.getByText('idle')).toBeInTheDocument();
expect(screen.getByText('IDLE')).toBeInTheDocument();
});
it('should handle empty active files array with collision flag', () => {

View file

@ -106,9 +106,9 @@ describe('Web Server API Endpoints', () => {
});
it('should include worker status', async () => {
store.add(createEvent({ worker: 'w-active', msg: 'Starting work' }));
store.add(createEvent({ worker: 'w-active', msg: 'bead.claimed' }));
store.add(createEvent({ worker: 'w-error', level: 'error', msg: 'Something failed' }));
store.add(createEvent({ worker: 'w-idle', msg: 'Task completed' }));
store.add(createEvent({ worker: 'w-idle', msg: 'bead.completed' }));
const response = await fetchApi('/api/workers');
const data = await response.json() as any;
@ -144,8 +144,8 @@ describe('Web Server API Endpoints', () => {
});
it('should track completed beads', async () => {
store.add(createEvent({ worker: 'w-test', msg: 'Task completed', bead: 'bd-1' }));
store.add(createEvent({ worker: 'w-test', msg: 'Task completed', bead: 'bd-2' }));
store.add(createEvent({ worker: 'w-test', msg: 'bead.completed', bead: 'bd-1' }));
store.add(createEvent({ worker: 'w-test', msg: 'bead.completed', bead: 'bd-2' }));
const response = await fetchApi('/api/workers/w-test');
const data = await response.json() as any;