Я пытаюсь создать объект окна для передачи в мои тесты, который включает переменную окна. Тест выглядит следующим образом:
const baseProps = {};
Enzyme.configure({ adapter: new Adapter() });
const baseWrapper = shallow(
<DivisionOrderIndex {...baseProps} />,
);
describe('<DivisionOrderIndex />', () => {
test('renders the MsDataGridServer', () => {
expect(baseWrapper.find(MsDataGridBulkDelete))
.toHaveLength(1);
});
Полученное сообщение об ошибке:
TypeError: Cannot read property 'read_only' of undefined
300 | </TitleButton>
301 | </div>
> 302 | {!window.jsdata.read_only && (
| ^
303 | <div id="page-buttons">
304 | <a href="/division_order_create" className="btn btn-primary">Create New</a>
305 | </div>
Я пытался добавить эти данные в мой объект окна следующим образом:
describe('<DivisionOrderIndex />', () => {
Object.defineProperty(window, 'jsdata', {
read_only: false,
});
test('renders the MsDataGridServer', () => {
expect(baseWrapper.find(MsDataGridBulkDelete))
.toHaveLength(1);
});
Но я продолжаю получать ту же ошибку. Это правильный способ передать объект окна или переменные? Любой вклад будет оценен.