以下是我正在使用的两种方法来更改弹出框包装器的状态。
const waitTransitionEnd = (element) => new Promise(resolve => {
const onEnd = () => {
element.removeEventListener('transitionend', onEnd)
resolve()
}
element.addEventListener('transitionend', onEnd)
})
doOpen () {
const dialog = findDOMNode(this.dialog)
this.setState({ status: OPENING })
return waitTransitionEnd(dialog).then(() => {
this.setState({ status: OPENED })
this.focus()
})
}
doClose () {
const dialog = findDOMNode(this.dialog)
this.setState({ status: CLOSING })
return waitTransitionEnd(dialog).then(() => {
this.setState({ status: CLOSED })
})
}
所以对话框是使用css过渡效果的样式化组件。我试图测试该组件,但只能在完成过渡后才获取到打开状态的状态。我正在使用jest快照测试。有没有人在使用jest编写测试用例时遇到过这种问题?请帮忙。