Мне нужно написать тест с использованием Jest и энзима, который охватывает базовую реализацию реакции / ui-маршрутизатора в моем приложении.Все, что нужно сделать, это подтвердить, что компонент загружен в DOM после того, как происходит программный переход состояния.
Я копался в документах и здесь на SO, но не могу найти способ сделать это.
У меня есть простая настройка состояния для компонента Home
export const states = [
{
url: '/home',
name: 'home',
component: Home,
}
];
Это тест, который я пытаюсь выполнить:
import React from 'react';
import { Transition } from '@uirouter/react';
import { mount } from 'enzyme';
import { Home, Page } from './components/Layout';
describe('UIRouter', () => {
it('go to home state', () => {
Transition.router.stateService.go('home');
const wrapper = mount(
<UIRouter router={router} >
<Page /> //component that contains <UIView />
</UIRouter>\
);
expect(wrapper.find(<Home />).length).toBe(1);
});
});
Когда я пытаюсь это сделатькод, я получаю сообщение об ошибке:
TypeError: Cannot read property 'stateService' of undefined
package.json:
@uirouter/react": "^0.8.0",
"react": "^16.3.2",
"react-dom": "^16.3.2",
"react-scripts": "1.1.4"
"enzyme": "^3.3.0",
Любое понимание приветствуется!