50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
import { describe, it, expect, vi } from 'vitest'
|
|
import { mount } from '@vue/test-utils'
|
|
import { createPinia, setActivePinia } from 'pinia'
|
|
import SepsisBoardView from '@/views/SepsisBoardView.vue'
|
|
|
|
const { mockPush } = vi.hoisted(() => ({
|
|
mockPush: vi.fn(),
|
|
}))
|
|
|
|
vi.mock('vue-router', () => ({
|
|
useRouter: () => ({ push: mockPush }),
|
|
}))
|
|
|
|
vi.mock('@/composables/usePolling', () => ({
|
|
usePolling: () => {},
|
|
}))
|
|
|
|
const bundles = [
|
|
{
|
|
id: 'b1',
|
|
encounterId: 'enc-1',
|
|
firstName: 'Alice',
|
|
lastName: 'A',
|
|
mrn: 'M1',
|
|
department: 'Icu',
|
|
roomBed: '101',
|
|
recognizedAt: '2026-06-23T12:00:00Z',
|
|
deadlineAt: '2026-06-23T15:00:00Z',
|
|
complianceStatus: 'IN_PROGRESS',
|
|
elements: [
|
|
{ id: 'e1', elementType: 'BloodCultures', status: 'Completed' },
|
|
{ id: 'e2', elementType: 'SerumLactate', status: 'Pending' },
|
|
],
|
|
},
|
|
]
|
|
|
|
vi.mock('@/api/sepsis', () => ({
|
|
fetchSepsisBundles: vi.fn(() => Promise.resolve({ items: bundles, totalCount: 1 })),
|
|
}))
|
|
|
|
describe('SepsisBoardView', () => {
|
|
it('rendersBundleBoardWithSummary', async () => {
|
|
setActivePinia(createPinia())
|
|
const wrapper = mount(SepsisBoardView)
|
|
await vi.waitFor(() => expect(wrapper.text()).toContain('Alice A'))
|
|
expect(wrapper.text()).toContain('Sepsis Bundle Board')
|
|
expect(wrapper.text()).toContain('Serum lactate')
|
|
})
|
|
})
|