/** * D3 regression: Worker result WorkerResult envelope * Validates that WorkerManager has the result field on WorkerHandle, * wrap_worker_result and get_result methods, and imports WorkerResult * from contracts. * * Uses source inspection (reading the source file as text). */ import { describe, it, expect } from 'bun:test' import { readFileSync } from 'fs' import { join } from 'path' const source_path = join(import.meta.dir, '../../src/workers/WorkerManager.ts') const source = readFileSync(source_path, 'utf-8') describe('D3: Worker result envelope', () => { it('WorkerHandle has result field', () => { expect(source).toContain('result?: WorkerResult') }) it('wrap_worker_result method exists', () => { expect(source).toContain('wrap_worker_result(') // Should be a private method expect(source).toContain('private wrap_worker_result') }) it('get_result method exists', () => { expect(source).toContain('get_result(agent_id: string)') // Should return WorkerResult | undefined expect(source).toContain('WorkerResult | undefined') }) it('imports WorkerResult from contracts', () => { expect(source).toContain("import type { WorkerResult") expect(source).toContain("from '@aircoding/contracts'") }) it('imports WorkerStatus from contracts', () => { expect(source).toContain('WorkerStatus') }) it('imports AgentType from contracts', () => { expect(source).toContain('AgentType') }) it('wrap_worker_result maps role results into WorkerResult with safe defaults', () => { expect(source).toContain('agent_type: (payload.agent_type as AgentType) || this.worker_agent_type(handle.config.agent_id)') expect(source).toContain("const raw_status = (payload.status as string) || 'completed'") expect(source).toContain("raw_status === 'fixed'") expect(source).toContain("raw_status === 'pass'") expect(source).toContain("raw_status === 'cannot_reproduce'") expect(source).toContain("raw_status === 'compacted'") expect(source).toContain("raw_status === 'no_patterns'") expect(source).toContain('changes.map((c: any) => String(c.file))') expect(source).toContain("verification_payload ? [{ command: 'worker verification'") expect(source).toContain('result: (payload.result as unknown) || payload') }) it('get_result returns undefined for unknown agent', () => { // The method should check if handle exists and return undefined expect(source).toContain('if (!handle) return undefined') }) })