GreyCrew
@GreyCrew
Full-stack developer

Почему в при тестировании саг, появляются ошибки отсутствия данных в самих сагах?

Есть сага
export const getQueryUserSaga = function * () {
  while (true) {
    let {payload} = yield take(GET_QUERY_USERS_REQUEST)
   
    const filtersAll = yield select(filtersSelector)

    let filters = null
    filtersAll.filter(i => Object.getOwnPropertyNames(i)[0] === moduleName).map(item => filters = item[moduleName])
  ...

 И тест
describe('users sagas', () => {
  
  test('look on a default offset users at list', () => {
    const sagaGetUsers = getQueryUserSaga()
    
    expect(sagaGetUsers.next().value).toEqual(take(GET_QUERY_USERS_REQUEST))
    expect(sagaGetUsers.next().value).toEqual(select(filtersSelector))  
  })
})


Почему при запуске теста, я получаю ошибку

TypeError: Cannot read property 'payload' of undefined testing sagas

Как в таком случае определить payload, желательно при этом не изменяя саму сагу ?
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
GreyCrew
@GreyCrew Автор вопроса
Full-stack developer
Нашел ответ.

Нужно определить payload и отправлять значение параметром в sagaGetUsers.next()
к примеру
describe('users sagas', () => {
  
  test('look on a default offset users at list', () => {
    const sagaGetUsers = getQueryUserSaga()
    const payload = 'default_filter=none'
    expect(sagaGetUsers.next(payload).value).toEqual(take(GET_QUERY_USERS_REQUEST))
    expect(sagaGetUsers.next().value).toEqual(select(filtersSelector))  
  })
})
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы