Я пытаюсь написать некоторые внешние тесты и пытаюсь написать модульный тест для моего реагирующего компонента, который имеет встроенный Iframe. Div-обертка (div.embed-отзывчивый) получает высоту из iframe. Я хочу написать несколько тестов для этого. Один тест охватывает сценарий проверки правильности отображения iframe, который работает. Я хочу написать еще один тест, который проверяет высоту, т. Е. Если высота установлена равной высоте iframe. Но я не уверен, как поступить с этим. Я хочу написать это, используя Jest.
Ниже приведен код.
import React, {Component} из'act ';
import {env} из '../../env';
const iFrameInitialSize = 550;
класс экспорта MenuContainer расширяет компонент {
constructor() {
super();
this.state = {
height: iFrameInitialSize,
};
this.updateDimensions = this.updateDimensions.bind(this);
}
componentDidMount() {
window.addEventListener('message', this.updateDimensions, false);
}
componentWillUnmount() {
window.removeEventListener('message', this.updateDimensions, false);
}
updateDimensions(event) {
if (event.origin === env.runtimeConfig.backend.IFRAME_URL) {
this.setState({
height: event.data,
});
}
}
render() {
return (
<div className='embed-responsive' style={{ height: this.state.height, overflow:'hidden', scrolling:'no' }}>
<iframe
className='embed-responsive-item'
src={env.runtimeConfig.backend.IFRAME_URL}
style={{ minHeight: '100%' }}/>
</div>
);
}
}
Я хочу проверить, что после того, как слушатель выполнил updatedDimensions (), правильная высота была установлена на значение div, равное высоте iframe.