Саги Jest Redux проваливают тестовый случай, несмотря на то, что аналогичный случай проходит

#javascript #redux #react-redux #jestjs

Вопрос:

Я тестирую саги в своем приложении, и у меня есть этот тестовый случай с ошибкой, который выдает ошибку, хотя работают другие аналогичные тестовые случаи с ошибками

Рассматриваемый случай в следующем

 // Code to be tested
export function* fetchCollectionsAsync() {
  try {
    const collectionRef = firestore.collection("collections");
    const snapshot = yield collectionRef.get();
    const collectionsMap = yield call(
      convertCollectionsSnapshotToMap,
      snapshot
    );
    yield put(fetchCollectionsSuccess(collectionsMap));
  } catch (error) {
    yield put(fetchCollectionsFailure(error.message));
  }
}

// Test case
it("should fire fetchCollectionsFailure if get collection fails at any point", () => {
  const newGenerator = fetchCollectionsAsync();
  newGenerator.next();
  expect(newGenerator.throw({ message: "error" }).value).toEqual(
    put(fetchCollectionsFailure("error"))
  );
});
 

Но это бросание

  FAIL  src/redux/shop/shop.sagas.test.js
  ● fetch collections async saga › should fire fetchCollectionsFailure if get collection fails at any point

    error
 

У меня также есть этот случай для другой саги, которая в значительной степени является тем же кодом для тестового случая, но он проходит

 // Code to be tested
export function* isUserAuthenticated() {
  try {
    const userAuth = yield getCurrentUser();
    if (!userAuth) return;
    yield getSnapshotFromUserAuth(userAuth);
  } catch (error) {
    yield put(signInFailure(error));
  }
}

// Test case
it('should call signInFailure on error', () => {
  const newGenerator = isUserAuthenticated();
  newGenerator.next();
  expect(newGenerator.throw('error').value).toEqual(
    put(signInFailure('error'))
  );
});