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, желательно при этом не изменяя саму сагу ?
  • Вопрос задан
  • 60 просмотров
Решения вопроса 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))  
  })
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
iBolit.pro Москва
от 170 000 до 250 000 руб.
Spectrum Екатеринбург
от 80 000 до 140 000 руб.
Myagi Минск
от 3 000 до 4 000 usd.