DEV Community

eomiso
eomiso

Posted on

Jest parametrized test that throws errors

Let's say we have a code like below that runs in node.

module.exports.registerUser = (username) => {
  if (!username) throw new Error('Username is required.');

  return { id: new Date().getTime(), username: username }
}
Enter fullscreen mode Exit fullscreen mode

In the code, the scenario where Error should be thrown are when the username is invalid.

For the username to be invalid, the username should be one of these: False, 0, null, '', undefined.

In the jest documentation, there is a section about parametrized (data-driven) tests in jest. However it is not clear how to handle erroneous situations in a bulk.

The code that I've come up is as below. Hope it helps!

describe("registerUser", () => {
  it.each([null, undefined, NaN, "", 0, false])(
    "should throw if username is falsy",
    (inputs) => {
      expect(() => lib.registerUser(input)).toThrow();
    }
  );
});
Enter fullscreen mode Exit fullscreen mode

Top comments (0)