Software zum Installieren eines Smart-Mirror Frameworks , zum Nutzen von hochschulrelevanten Informationen, auf einem Raspberry-Pi.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

no-try-expect.md 1.3KB

Prevent catch assertions in tests (no-try-expect)

Deprecated

This rule has been deprecated in favor of no-conditional-expect.


This rule prevents the use of expect inside catch blocks.

Rule Details

Expectations inside a catch block can be silently skipped. While Jest provides an expect.assertions(number) helper, it might be cumbersome to add this to every single test. Using toThrow concisely guarantees that an exception was thrown, and that its contents match expectations.

The following patterns are warnings:

it('foo', () => {
  try {
    foo(); // `foo` may be refactored to not throw exceptions, yet still appears to be tested here.
  } catch (err) {
    expect(err).toMatch(/foo error/);
  }
});

it('bar', async () => {
  try {
    await foo();
  } catch (err) {
    expect(err).toMatch(/foo error/);
  }
});

it('baz', async () => {
  try {
    await foo();
  } catch (err) {
    expect(err).toMatchObject({ code: 'MODULE_NOT_FOUND' });
  }
});

The following patterns are not warnings:

it('foo', () => {
  expect(() => foo()).toThrow(/foo error/);
});

it('bar', async () => {
  await expect(fooPromise).rejects.toThrow(/foo error/);
});

it('baz', async () => {
  await expect(() => foo()).rejects.toThrow(
    expect.objectContaining({ code: 'MODULE_NOT_FOUND' }),
  );
});