Сборник рассказов Storyshots с реакцией router-dom-dom - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть приложение реагирования, которое используетact-router-dom для некоторых компонентов.

Приложение правильно работает с маршрутизаторами, но я хочу интегрировать модульное тестирование и интеграционные тесты. Я решил использовать Jest and Storybook.

Я получаю эту ошибку TypeError: parentInstance.children.indexOf is not a function при запуске тестов. Это связано с тестированием, когда он пытается протестировать любой компонент, вызываемый между <Router>.

Component.test. js

import React from 'react';
import ReactDOM from 'react-dom';
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import { cleanup } from "@testing-library/react";
import {BrowserRouter as Router } from 'react-router-dom'

import Component from './ComponentFile';

afterEach(cleanup);
configure({ adapter: new Adapter() });

beforeAll(() => {
  ReactDOM.createPortal = jest.fn((element, node) => {
      return element
  })
});

describe('renders without crashing', () => {
  it('renders no input props without crashing', () => {
    const div = document.createElement('div');
    ReactDOM.render(
      <Router>
        <Component />
      </Router>, div)
  });
});

Component.stories. js

import React from 'react'
import { MemoryRouter, BrowserRouter as Router } from 'react-router-dom'
import { action } from '@storybook/addon-actions'

import Component from './ComponentFile';

export default {
  title: '../Component',
  component: Component,
};

export const Component = () => {
    return (
    <Router>
        <Component />
    </Router>
)}

Это правильно отображает в Storybook, но при запуске storyshots тест не пройден.

storyshot.jest. js

import initStoryshots from '@storybook/addon-storyshots';

initStoryshots({});

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