import { describe, it, expect, vi } from 'vitest' import { mount } from '@vue/test-utils' import HandoffReport from '@/components/ward/HandoffReport.vue' const mockReport = { generatedAt: '2026-06-23T08:00:00Z', generatedBy: 'Test Nurse', summary: { department: 'ICU', patientCount: 1, criticalCount: 1, alertCount: 2, activeBundles: 1, }, patients: [ { encounterId: 'enc-1', name: 'Jane Doe', mrn: 'MRN001', room: 'ICU-3', department: 'ICU', attending: 'Dr Smith', news2: 8, sofa: 6, sofaDelta: 2, gcs: 14, qsofa: 2, vitalsSummary: 'HR 110 bpm', alertsSummary: 'NEWS2 Emergency', pendingOrders: 'Blood cultures', sbar: { situation: 'Sepsis workup', background: 'Allergies: Penicillin', assessment: 'NEWS2 8', recommendation: 'Blood cultures', }, }, ], } vi.mock('@/composables/handoffReport', async importOriginal => { const actual = await importOriginal() return { ...actual, buildHandoffReport: vi.fn(() => Promise.resolve(mockReport)), } }) describe('HandoffReport', () => { it('rendersWardSummaryAndPatientRows', async () => { const wrapper = mount(HandoffReport, { props: { encounters: [{ encounterId: 'enc-1' }], department: 'ICU', generatedBy: 'Test Nurse', }, attachTo: document.body, }) await vi.waitFor(() => expect(document.body.textContent).toContain('Ward Summary')) expect(document.body.textContent).toContain('Jane Doe') expect(document.body.textContent).toContain('SBAR') expect(document.body.textContent).toContain('Sepsis workup') wrapper.unmount() document.body.innerHTML = '' }) })