#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'))
);
});