Skip to content

Latest commit

 

History

History
41 lines (27 loc) · 1.01 KB

require-to-throw-message.md

File metadata and controls

41 lines (27 loc) · 1.01 KB

Require a message for toThrow() (require-to-throw-message)

toThrow() (and its alias toThrowError()) is used to check if an error is thrown by a function call, such as in expect(() => a()).toThrow(). However, if no message is defined, then the test will pass for any thrown error. Requiring a message ensures that the intended error is thrown.

Rule details

This rule triggers a warning if toThrow() or toThrowError() is used without an error message.

The following patterns are considered warnings:

test('all the things', async () => {
  expect(() => a()).toThrow();

  expect(() => a()).toThrowError();

  await expect(a()).rejects.toThrow();

  await expect(a()).rejects.toThrowError();
});

The following patterns are not considered warnings:

test('all the things', async () => {
  expect(() => a()).toThrow('a');

  expect(() => a()).toThrowError('a');

  await expect(a()).rejects.toThrow('a');

  await expect(a()).rejects.toThrowError('a');
});