From 9b5e740a922d295b32d9b97a87f29ec4a70f47c6 Mon Sep 17 00:00:00 2001 From: jedarden Date: Tue, 26 May 2026 17:11:47 -0400 Subject: [PATCH] test(bf-7x4z): fix 13 TypeScript type errors in test files - Add currentBead: null to all WorkerInfo test fixtures (8 files) - Add missing required fields to SemanticNarrative test fixtures - accomplishments, challenges, sentiment, stats, generatedAt, isLive - Add missing workerId and events to NarrativeSegment fixtures - Fix onSelectCallback mock type assertion - Add Record index signature to mockBeadsData All npx tsc --noEmit errors resolved. Test failures (6) remain and are tracked in separate bead bf-40cu. Closes: bf-7x4z --- src/beadWorkspaceScanner.test.ts | 2 +- src/tui/app.test.ts | 1 + .../components/SemanticNarrativePanel.test.ts | 38 ++++++++++++++++--- src/tui/components/WorkerDetail.e2e.test.ts | 1 + src/tui/components/WorkerDetail.test.ts | 1 + src/tui/components/WorkerGrid.e2e.test.ts | 1 + src/tui/components/WorkerGrid.test.ts | 1 + src/tui/regression.enhanced.test.ts | 1 + src/tui/regression.test.ts | 1 + src/tui/utils/stuckDetection.test.ts | 1 + 10 files changed, 42 insertions(+), 6 deletions(-) diff --git a/src/beadWorkspaceScanner.test.ts b/src/beadWorkspaceScanner.test.ts index dc6f376..8bc86e5 100644 --- a/src/beadWorkspaceScanner.test.ts +++ b/src/beadWorkspaceScanner.test.ts @@ -31,7 +31,7 @@ describe('Bead Workspace Scanner', () => { }, ]; - const mockBeadsData = { + const mockBeadsData: Record = { '/home/coding/FABRIC/.beads/issues.jsonl': [ JSON.stringify({ id: 'bf-1abc', diff --git a/src/tui/app.test.ts b/src/tui/app.test.ts index 57cef04..936c8c0 100644 --- a/src/tui/app.test.ts +++ b/src/tui/app.test.ts @@ -200,6 +200,7 @@ function createMockWorker(overrides: Partial = {}): WorkerInfo { activeDirectories: [], collisionTypes: [], eventCount: 10, + currentBead: null, ...overrides, }; } diff --git a/src/tui/components/SemanticNarrativePanel.test.ts b/src/tui/components/SemanticNarrativePanel.test.ts index da8ab66..2461ebf 100644 --- a/src/tui/components/SemanticNarrativePanel.test.ts +++ b/src/tui/components/SemanticNarrativePanel.test.ts @@ -134,6 +134,19 @@ function createMockNarrative(overrides: Partial = {}): Semant startTime: Date.now() - 20000, endTime: Date.now(), durationMs: 20000, + accomplishments: ['Fixed bug', 'Added feature'], + challenges: ['Complex refactoring'], + sentiment: 'productive', + stats: { + totalEvents: 10, + segmentCount: 2, + beadsWorked: 1, + filesModified: 3, + errorsEncountered: 0, + toolsUsed: 5, + }, + generatedAt: Date.now(), + isLive: false, segments: [ { id: 'seg-1', @@ -182,7 +195,7 @@ describe('SemanticNarrativePanel', () => { let mockListInstance: any; let mockSubBox: any; let mockManager: any; - let onSelectCallback: ReturnType; + let onSelectCallback: ReturnType & ((segmentId: string) => void); beforeEach(() => { vi.clearAllMocks(); @@ -207,7 +220,7 @@ describe('SemanticNarrativePanel', () => { (getSemanticNarrativeManager as Mock).mockReturnValue(mockManagerInstance); mockScreen = createMockScreen(); - onSelectCallback = vi.fn(); + onSelectCallback = vi.fn() as ReturnType & ((segmentId: string) => void); // Get the mock instances from the mock const blessedMock = blessed as unknown as { box: Mock; list: Mock }; @@ -333,9 +346,9 @@ describe('SemanticNarrativePanel', () => { beforeEach(() => { const narrative = createMockNarrative({ segments: [ - { id: '1', pattern: 'file_editing', summary: 'First', startTime: Date.now() - 30000, endTime: Date.now() - 20000, durationMs: 10000, confidence: 0.9, isActive: true, entities: {} }, - { id: '2', pattern: 'tool_usage', summary: 'Second', startTime: Date.now() - 20000, endTime: Date.now() - 10000, durationMs: 10000, confidence: 0.8, isActive: false, entities: {} }, - { id: '3', pattern: 'error_handling', summary: 'Third', startTime: Date.now() - 10000, endTime: Date.now(), durationMs: 10000, confidence: 0.7, isActive: false, entities: {} }, + { id: '1', pattern: 'file_editing', summary: 'First', startTime: Date.now() - 30000, endTime: Date.now() - 20000, durationMs: 10000, confidence: 0.9, isActive: true, workerId: 'w-test', events: [], entities: {} }, + { id: '2', pattern: 'tool_usage', summary: 'Second', startTime: Date.now() - 20000, endTime: Date.now() - 10000, durationMs: 10000, confidence: 0.8, isActive: false, workerId: 'w-test', events: [], entities: {} }, + { id: '3', pattern: 'error_handling', summary: 'Third', startTime: Date.now() - 10000, endTime: Date.now(), durationMs: 10000, confidence: 0.7, isActive: false, workerId: 'w-test', events: [], entities: {} }, ] as NarrativeSegment[], }); panel.setNarrative(narrative); @@ -783,6 +796,19 @@ describe('SemanticNarrativePanel', () => { startTime: Date.now() - 10000, endTime: Date.now(), durationMs: 10000, + accomplishments: [], + challenges: [], + sentiment: 'idle', + stats: { + totalEvents: 0, + segmentCount: 0, + beadsWorked: 0, + filesModified: 0, + errorsEncountered: 0, + toolsUsed: 0, + }, + generatedAt: Date.now(), + isLive: false, segments: [], }; @@ -803,6 +829,8 @@ describe('SemanticNarrativePanel', () => { durationMs: 10000, confidence: 0.9, isActive: true, + workerId: 'w-test', + events: [], entities: {}, }], }); diff --git a/src/tui/components/WorkerDetail.e2e.test.ts b/src/tui/components/WorkerDetail.e2e.test.ts index b3be884..6f5cdf2 100644 --- a/src/tui/components/WorkerDetail.e2e.test.ts +++ b/src/tui/components/WorkerDetail.e2e.test.ts @@ -49,6 +49,7 @@ function createMockWorker(overrides: Partial = {}): WorkerInfo { activeDirectories: [], collisionTypes: [], eventCount: 10, + currentBead: null, ...overrides, }; } diff --git a/src/tui/components/WorkerDetail.test.ts b/src/tui/components/WorkerDetail.test.ts index 6e6d7f8..5dffd9a 100644 --- a/src/tui/components/WorkerDetail.test.ts +++ b/src/tui/components/WorkerDetail.test.ts @@ -77,6 +77,7 @@ function createMockWorker(overrides: Partial = {}): WorkerInfo { activeDirectories: ['/src'], collisionTypes: [], eventCount: 10, + currentBead: null, ...overrides, }; } diff --git a/src/tui/components/WorkerGrid.e2e.test.ts b/src/tui/components/WorkerGrid.e2e.test.ts index 223fa3d..2f76699 100644 --- a/src/tui/components/WorkerGrid.e2e.test.ts +++ b/src/tui/components/WorkerGrid.e2e.test.ts @@ -47,6 +47,7 @@ function createMockWorker(overrides: Partial = {}): WorkerInfo { activeDirectories: [], collisionTypes: [], eventCount: 10, + currentBead: null, ...overrides, }; } diff --git a/src/tui/components/WorkerGrid.test.ts b/src/tui/components/WorkerGrid.test.ts index ee3dedd..556c12a 100644 --- a/src/tui/components/WorkerGrid.test.ts +++ b/src/tui/components/WorkerGrid.test.ts @@ -46,6 +46,7 @@ function createMockWorker(overrides: Partial = {}): WorkerInfo { activeDirectories: [], collisionTypes: [], eventCount: 10, + currentBead: null, ...overrides, }; } diff --git a/src/tui/regression.enhanced.test.ts b/src/tui/regression.enhanced.test.ts index 2069389..2b8d05e 100644 --- a/src/tui/regression.enhanced.test.ts +++ b/src/tui/regression.enhanced.test.ts @@ -401,6 +401,7 @@ function createMockWorker(overrides: Partial = {}): WorkerInfo { activeDirectories: [], collisionTypes: [], eventCount: 10, + currentBead: null, ...overrides, }; } diff --git a/src/tui/regression.test.ts b/src/tui/regression.test.ts index 5497814..936d8cc 100644 --- a/src/tui/regression.test.ts +++ b/src/tui/regression.test.ts @@ -261,6 +261,7 @@ function createMockWorker(overrides: Partial = {}): WorkerInfo { activeDirectories: [], collisionTypes: [], eventCount: 10, + currentBead: null, ...overrides, }; } diff --git a/src/tui/utils/stuckDetection.test.ts b/src/tui/utils/stuckDetection.test.ts index b28d2a5..0c54596 100644 --- a/src/tui/utils/stuckDetection.test.ts +++ b/src/tui/utils/stuckDetection.test.ts @@ -17,6 +17,7 @@ const makeWorker = (overrides: Partial = {}): WorkerInfo => ({ activeDirectories: [], collisionTypes: [], eventCount: 10, + currentBead: null, ...overrides, });