Categories
JavaScript Answers

How to properly make mock throw an error in Jest?

Spread the love

Sometimes, we want to properly make mock throw an error in Jest.

In this article, we’ll look at how to properly make mock throw an error in Jest.

How to properly make mock throw an error in Jest?

To properly make mock throw an error in Jest, we call the mockImplementation method and throw an error in the callback we call the method with.

For instance, we write

it("should throw error if email not found", async () => {
  callMethod
    .mockImplementation(() => {
      throw new Error("User not found [403]");
    })
    .mockName("callMethod");

  const query = FORGOT_PASSWORD_MUTATION;
  const params = { email: "user@example.com" };
  const result = await simulateQuery({ query, params });

  console.log(result);
  expect(callMethod()).rejects.toMatch("User not found [403]");
});

to call callMethod.mockImplementation with a callback that throws and error.

Then we use

expect(callMethod()).rejects.toMatch("error");

to check the callMethod throws an error with the given content.

Conclusion

To properly make mock throw an error in Jest, we call the mockImplementation method and throw an error in the callback we call the method with.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *