как избежать ошибки response.createElement при тестировании - PullRequest
0 голосов
/ 07 мая 2020

У меня есть index. js файл в приложении React.

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App'
import * as serviceWorker from './serviceWorker';
import {combineReducers,createStore,compose,applyMiddleware} from 'redux'
import {Provider} from 'react-redux'
import thunk from 'redux-thunk'
import { HashRouter } from 'react-router-dom';
import playerReducer from './store/Player/PlayerReducers'
import cardReducer from './store/Cards/cardsReducer'
import playersReducer from './store/Players/PlayersReducer'
import stylesReducer from './store/Styles/StylesReducer'
const rootReducer = combineReducers({
    player: playerReducer,
    cards:cardReducer,
    players:playersReducer,
    styles:stylesReducer
})
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(rootReducer, composeEnhancers(applyMiddleware(thunk)))

ReactDOM.render(
    <Provider store={store}>
     <HashRouter>
      <App />
     </HashRouter>
</Provider>
    , document.getElementById('root'));

serviceWorker.unregister();

export {store}

Я использую шутку и фермент для тестирования. В testSetup. js у меня

import Enzyme from 'enzyme'
import EnzymeAdapter from 'enzyme-adapter-react-16'


Enzyme.configure({
    adapter: new EnzymeAdapter(),
    disableLifecycleMethods:true
})
когда я пишу npm run test wor testing, я получаю эту ошибку Целевой контейнер не является элементом DOM.
  21 | const store = createStore(rootReducer, composeEnhancers(applyMiddleware(thunk)))
  22 |
> 23 | ReactDOM.render(
     |          ^
  24 |     <Provider store={store}>
  25 |      <HashRouter>
  26 |       <App />

  at Object.render (node_modules/react-dom/cjs/react-dom.development.js:24828:13)
  at Object.<anonymous> (src/index.js:23:10)
  at Object.<anonymous> (src/store/Styles/StylesActions.js:1:1)
  at Object.<anonymous> (src/Register/SignUp.js:5:1)
  at Object.<anonymous> (src/App.js:4:1)
  at Object.<anonymous> (src/App.test.js:3:1)

console.error node_modules / react / cjs / react.development. js: 315 Предупреждение: React.createElement: тип недействителен - ожидается строка (для встроенных компонентов) или класс / функция (для составных компонентов), но получено: undefined. Скорее всего, вы забыли экспортировать свой компонент из файла, в котором он определен, или вы могли перепутать импорт по умолчанию и именованный импорт.

Check your code at index.js:26.

Есть ли у вас какие-нибудь идеи?

...