vitest/test/core/test/hooks.test.js
2025-04-05 11:14:06 +02:00

58 lines
1.2 KiB
JavaScript

import { afterAll, afterEach, assert, beforeAll, beforeEach, describe, it } from 'vitest'
describe('before and after hooks', () => {
let eachState = 'start'
let eachCount = 0
let allState = 'start'
let allCount = 0
beforeAll(() => {
allState = 'running'
})
afterAll(() => {
allState = 'done'
allCount++
})
beforeEach(() => {
eachState = 'running'
})
afterEach(() => {
eachState = 'done'
eachCount++
})
// Hooks accepting a timeout
beforeAll(async () => { }, 1000)
afterAll(async () => { }, 1000)
beforeEach(async () => { }, 1000)
afterEach(async () => { }, 1000)
beforeAll(async () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve()
}, 100)
})
}, 1000)
it('beforeEach works', () => {
assert.equal(eachState, 'running')
})
// It should work if tests are run in serial, skip for now
it.skip('afterEach called', () => {
assert.equal(eachState, 'running')
assert.equal(eachCount, 1)
})
it('beforeAll works', () => {
assert.equal(allState, 'running')
})
it('afterAll not called', () => {
assert.equal(allState, 'running')
assert.equal(allCount, 0)
})
})