Реагировать на изменение состояния тестирования UI-роутера - PullRequest
0 голосов
/ 23 мая 2018

Мне нужно написать тест с использованием 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",

Любое понимание приветствуется!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...