Библиотека тестирования реакции: TypeError: невозможно прочитать статьи свойства undefined

Я пытаюсь протестировать свой контейнер с помощью библиотеки react-testing-library.

const middlewares = [thunk.withExtraArgument({})];
const mockStore = configureMockStore(middlewares);

const storeState = {
 articles: 
    [
        {
            id: "9b565b11-7311-5b5e-a699-97873dffb364",
            title: "jsdhahd",
            body: "jsahdjadshajhd",
            link: "https://www.google.com",
            media: "media.jpg"
        },
    ],
loading: false,
error: ''
};

describe('<Homepage />', () => {
  let store;

  beforeEach(() => {
    store = mockStore(storeState);
});

afterEach(() => {
    store.clearActions();
});

it('should render correctly', () => {
    const container = render(<Provider store={store}>{<Homepage />}</Provider>);

    expect(container).toMatchSnapshot();
});

И я получаю эту ошибку: error

Кто-нибудь может помочь? Кажется проблема с издевательством над магазином redux, но я точно не знаю, как ее решить. У меня есть в редукторе начальное состояние со статьями, загрузкой и ошибкой. И в моем файле App.js я оборачиваю <App/> <Provider store={store}>

export const store = createStore(
  rootReducer,
  applyMiddleware(thunk)
)

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

person costa    schedule 08.03.2020    source источник


Ответы (2)


Ошибка была при создании объекта storeState.

Правильный способ:

const storeState = {
   reducer: {
      articles: 
        [
         {
            id: "9b565b11-7311-5b5e-a699-97873dffb364",
            title: "jsdhahd",
            body: "jsahdjadshajhd",
            link: "https://www.google.com",
            media: "media.jpg"
        },
       ],
     loading: false,
     error: ''
};
person costa    schedule 09.03.2020

Я думаю, что в mapStateToProps должно быть state.articles вместо state.reducer.articles.

person Siva K V    schedule 08.03.2020
comment
Этого не может быть, потому что в противном случае я не смогу получить значения, хранящиеся в редукторе, для отображения моих данных в приложении. - person costa; 08.03.2020