27 lines
864 B
JavaScript
27 lines
864 B
JavaScript
|
|
import { describe, it, expect, vi, beforeEach } from 'vitest'
|
||
|
|
import { useAlert } from '@/composables/useAlert'
|
||
|
|
|
||
|
|
describe('useAlert', () => {
|
||
|
|
beforeEach(() => {
|
||
|
|
vi.useFakeTimers()
|
||
|
|
})
|
||
|
|
|
||
|
|
it('shows and clears alerts', () => {
|
||
|
|
const { current, show, clear } = useAlert()
|
||
|
|
expect(current.value).toBeNull()
|
||
|
|
show({ heading: 'Hello', message: 'World', type: 'info' })
|
||
|
|
expect(current.value).toMatchObject({ heading: 'Hello', message: 'World', type: 'info' })
|
||
|
|
clear()
|
||
|
|
expect(current.value).toBeNull()
|
||
|
|
})
|
||
|
|
|
||
|
|
it('auto-dismisses after scheduleAutoDismiss', () => {
|
||
|
|
const { current, show, scheduleAutoDismiss } = useAlert()
|
||
|
|
show({ heading: 'Auto', message: 'Dismiss', type: 'success' })
|
||
|
|
scheduleAutoDismiss(5000)
|
||
|
|
expect(current.value).not.toBeNull()
|
||
|
|
vi.advanceTimersByTime(5000)
|
||
|
|
expect(current.value).toBeNull()
|
||
|
|
})
|
||
|
|
})
|