Я бы хотел настроить тесты для помощника.
Логика проста: перед каждым тестом я создаю новый элемент и применяю к нему свою функцию.
здесьсамая основная функция:
const myTest = (item) => {
return item.valid ? 'ok' : 'ko'
}
const createItem = () => {
return {
name: 'myItem',
valid: true,
}
}
А вот тестовый файл
describe('products/checkStatus', () => {
let item
beforeEach(() => {
item = createItem()
})
test('valid item', () => {
expect(
myTest(
item,
),
).toBe('ok')
})
test('invalid item', () => {
item.valid = false
expect(
myTest(
item
),
).toBe('ko')
})
test('valid item again', () => {
expect(
myTest(
item
),
).toBe('ok')
})
})
Итак, первый и второй тест пройдут успешно, но третий не пройдёт, потому что считает, чтоitem.valid
- это false
.
Как так получается? Разве beforeEach
не должен выполняться после каждого теста и, следовательно, получать свежий, действительный предмет?