Реагируйте на тестовое перенаправление на тот же маршрут, используя Enzyme - PullRequest
2 голосов
/ 06 марта 2019

У меня есть страница входа, которую я сейчас тестирую с помощью JEST / Enzyme, используя этот код:

import React from 'react';
import {BrowserRouter as Router} from 'react-router-dom';

import { Button, FormControl } from 'react-bootstrap';

import Adapter from 'enzyme-adapter-react-16'
import { configure, mount } from 'enzyme';

import LoginScreen from'./index';

it('login page renders without crashing', () => {
  configure({adapter: new Adapter()});
  let page =
  <Router>
    <LoginScreen />  
  </Router>;
  let mountedpage = mount(page);

  let btn = mountedpage.find(Button);
  let loginscreen;
  let frm = mountedpage.find(FormControl);

  frm.forEach(async (node) => {
    node.simulate('change', {value: 'e'});
    node.simulate('keypress', {key: 'e'});
    node.simulate('keypress', {key: 'Enter'});
  });

  loginscreen = mountedpage.find(LoginScreen);
  loginscreen.setState({mail: "test", pass: "123"});
  btn = mountedpage.find(Button);
  btn.simulate('click');
  });

Когда вызывается btn.simulate ('click'), вход успешен и перенаправляет на "/».Обычно страница входа размещается в "/ login", поэтому проблем нет.Но, по-видимому, Enzyme эмулирует страницу по URL-адресу "/", поэтому я получаю предупреждение:

console.error node_modules/warning/warning.js:34
Warning: You tried to redirect to the same route you're currently on: "/"

Можно ли как-то сказать Enzyme, что по умолчанию он должен эмулировать, чтобы он находился в "/ login"?

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