import { describe, it, expect } from 'vitest' import { buildIncidentReportPdf, type IncidentReportData } from '@/lib/pdf/incident-report' const MOCK: IncidentReportData = { referenceNo: 'SC1-202607-0001', incidentType: 'injury', reportedAt: '2026-07-01T08:00:00.000Z', siteName: 'Setia Warehouse KL', zoneName: 'Loading Bay A', reporterName: 'Ahmad Bin Ali', severity: 3, medicalStatus: 'first_aid', description: 'Worker slipped on wet floor near loading bay.', injuryInvolved: true, assetInvolved: false, isFatality: false, isSeriousBodilyInjury: false, isDangerousOccurrence: false, isOccupationalDisease: false, lostDays: null, triagedBy: 'Supervisor Tan', triagedAt: '2026-07-01T10:00:00.000Z', triageNotes: 'Reviewed on-site. First aid applied.', investigation: { method: 'five_why', findingsText: 'Floor was wet due to a leaking pipe.', rootCauseSummary: 'Maintenance backlog on pipe inspection.', alcoholTestResult: 'negative', urineTestResult: 'negative', }, capas: [ { description: 'Install non-slip mats in loading bay.', ownerName: 'Maintenance Dept', department: 'Maintenance', dueDate: '2026-07-15', priority: 'high', status: 'closed', completedAt: '2026-07-14T09:00:00.000Z', ownerNotes: 'Mats installed and inspected.', }, ], addenda: [ { authorName: 'HSE Officer Lim', createdAt: '2026-07-20T14:00:00.000Z', body: 'Follow-up inspection passed. Area cleared.', }, ], closedAt: '2026-07-20T15:00:00.000Z', } describe('buildIncidentReportPdf', () => { it('returns a Uint8Array starting with PDF magic bytes', async () => { const result = await buildIncidentReportPdf(MOCK) expect(result).toBeInstanceOf(Uint8Array) // PDF files start with %PDF const header = String.fromCharCode(...result.slice(0, 4)) expect(header).toBe('%PDF') }) it('handles incident with no investigation, CAPAs, or addenda', async () => { const minimal: IncidentReportData = { ...MOCK, triagedBy: null, triagedAt: null, triageNotes: null, investigation: null, capas: [], addenda: [], } const result = await buildIncidentReportPdf(minimal) expect(result).toBeInstanceOf(Uint8Array) const header = String.fromCharCode(...result.slice(0, 4)) expect(header).toBe('%PDF') }) })