dimanche 3 mai 2020

How to mock variables inside redux saga generator functions?

how can I test the saga below?

export function* getSnapShotFromUserAuth(userAuth, additionalData) {
  try {
    const userRef = yield call(
      createUserProfileDocument,
      userAuth,
      additionalData
    );
    const userSnapshot = yield userRef.get();
    yield put(signInSuccess({ id: userSnapshot.id, ...userSnapshot.data() }));
  } catch (error) {
    yield put(signInFailure(error));
  }
}

I was only able to get it working up until the first line:

describe("getSnapShotFromUserAuth", () => {
  const mockUserAuth = {};
  const mockAdditionalData = {};
  const generator = getSnapShotFromUserAuth(mockUserAuth, mockAdditionalData);

  it("should get snapshot from user auth", () => {
    expect(generator.next().value).toEqual(
      call(createUserProfileDocument, mockUserAuth, mockAdditionalData)
    );
  });
});

How can I verify the next line? const userSnapshot = yield userRef.get();

I keep getting error TypeError: Cannot read property 'get' of undefined when calling trying to test the next line as it cannot find userRef. Is there a way to be able to mock the next line?

Aucun commentaire:

Enregistrer un commentaire