Мы столкнулись с аналогичной проблемой при тестировании компонента, который содержит BootstrapVue модальный .Я нашел кое-что, что сработало, посмотрев на BV модальные модульные тесты .Там вы увидите следующее:
// take action to open modal and then
await waitNT(wrapper.vm)
await waitRAF()
await waitNT(wrapper.vm)
await waitRAF()
... где waitNT
и waitRF
определены в tests / utils.js :
export const waitNT = ctx => new Promise(resolve => ctx.$nextTick(resolve))
export const waitRAF = () => new Promise(resolve => requestAnimationFrame(resolve))
Это позволяет обновлениям DOM завершаться и модально «появляться» в вашем тесте.Возможно, вам придется поиграть с количеством звонков.Вы увидите, что они повторяются в тестах BV где-то 1-3 раза после срабатывания модального открытия.
Еще один полезный элемент - заглушка переходов в вашем монтировании-обертке, например:
wrapper.mount(MyModalComponent, {
stubs: {
transition: false
}
}
Это гарантирует, что переходы будут происходить синхронно, а не асинхронно, как указано в в документации здесь..