49 lines
1.7 KiB
JavaScript
49 lines
1.7 KiB
JavaScript
import { describe, it, expect, beforeEach } from 'vitest'
|
|
import { mount } from '@vue/test-utils'
|
|
import { createPinia, setActivePinia } from 'pinia'
|
|
import ScoresPanel from '@/components/patient/ScoresPanel.vue'
|
|
import { useScoringStore } from '@/stores/scoring'
|
|
|
|
describe('ScoresPanel', () => {
|
|
beforeEach(() => {
|
|
setActivePinia(createPinia())
|
|
const store = useScoringStore()
|
|
store.$patch({
|
|
news2: { totalScore: 5, riskLevel: 'Medium' },
|
|
gcs: { eyeScore: 4, verbalScore: 5, motorScore: 6, totalScore: 15 },
|
|
sofa: { totalScore: 4, deltaFromBaseline: 0, respiratoryScore: 1, coagulationScore: 0, liverScore: 0, cardiovascularScore: 1, cnsScore: 1, renalScore: 1 },
|
|
qsofa: { activeCriteria: 2 },
|
|
})
|
|
})
|
|
|
|
it('showsGcsSection', () => {
|
|
const wrapper = mount(ScoresPanel)
|
|
expect(wrapper.text()).toContain('GCS')
|
|
expect(wrapper.text()).toContain('15/15')
|
|
expect(wrapper.text()).toContain('E4 V5 M6')
|
|
})
|
|
|
|
it('showsSofaSection', () => {
|
|
const wrapper = mount(ScoresPanel)
|
|
expect(wrapper.text()).toContain('SOFA')
|
|
expect(wrapper.text()).toContain('4/24')
|
|
})
|
|
|
|
it('noSirsReference', () => {
|
|
const wrapper = mount(ScoresPanel)
|
|
expect(wrapper.text().toUpperCase()).not.toContain('SIRS')
|
|
})
|
|
|
|
it('qsofaLabeledAsScreen', () => {
|
|
const wrapper = mount(ScoresPanel)
|
|
expect(wrapper.text()).toContain('qSOFA Screen')
|
|
expect(wrapper.text()).toContain('Bedside screening')
|
|
})
|
|
|
|
it('sofaOrganBadgesUseResponsiveGrid', () => {
|
|
const wrapper = mount(ScoresPanel)
|
|
const grid = wrapper.find('.grid.grid-cols-2')
|
|
expect(grid.exists()).toBe(true)
|
|
expect(grid.classes()).toContain('sm:flex')
|
|
})
|
|
}) |