React-redux mock store с неопределенными значениями - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь смоделировать возвращаемые значения useSelector (), и эти тесты работали изначально; однако, некоторые изменения в репо привели к их провалу. Вот шаги, которые я предпринимаю, чтобы смоделировать значения для компонента.

Ниже приведено макетирование значений, которые обычно выдаются из

// In Component.tsx
const requestAccess = useSelector<RootState, IGenericNetworkAction>(
   state => state.accessRequest as IGenericNetworkAction,
);
// In Component.test.tsx
const requestAccess = {
  isFetching: false,
  status: 200
} as IGenericNetworkAction

Затем я создаю mockStore - вместе с историей для переноса компонента в маршрутизаторе

// In Component.test.tsx
const mockStore = configureMockStore([thunk]);
const history = createMemoryHistory();
const store = mockStore({requestAccess: requestAccess});

Но при попытке смонтировать этот компонент с помощью энзима:

// In Component.test.tsx
const componentRender = mount(
   <Provider store={store}>
     <Router history={history}>
       <Component />
     </Router>
   </Provider>,
);

Я получаю следующую ошибку, говоря, что requestAccess.status не определен:

    TypeError: Cannot read property 'status' of undefined

      85 |                   <button type="submit">Submit</button>
      86 |                 </div>
    > 87 |                 {requestAccess.status === 200 && !requestAccess.isFetching ? (
         |                                ^
      88 |                   <p>Your request has been submitted</p>
      89 |                 ) : null}
      90 |               </Form>

Эти тесты работали раньше поэтому я не понимаю, почему они случайно решили сломаться, и как статус не определен, когда я предоставляю необходимую информацию в поддельный магазин. Я иду по этому поводу неправильно? Есть ли другой способ предоставить мои тесты с этими данными?

...