Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
1 contributor

Users who have contributed to this file

54 lines (40 sloc) 1.16 KB

Disallow conditional logic. (no-if)

Conditional logic in tests is usually an indication that a test is attempting to cover too much, and not testing the logic it intends to. Each branch of code executing within an if statement will usually be better served by a test devoted to it.

Conditionals are often used to satisfy the typescript type checker. In these cases, using the non-null assertion operator (!) would be best.

Rule Details

This rule prevents the use of if/ else statements and conditional (ternary) operations in tests.

The following patterns are considered warnings:

it('foo', () => {
  if ('bar') {
    // an if statement here is invalid
    // you are probably testing too much
  }
});

it('foo', () => {
  const bar = foo ? 'bar' : null;
});

These patterns would not be considered warnings:

it('foo', () => {
  // only test the 'foo' case
});

it('bar', () => {
  // test the 'bar' case separately
});

it('foo', () => {
  function foo(bar) {
    // nested functions are valid
    return foo ? bar : null;
  }
});

When Not To Use It

If you do not wish to prevent the use of if statements in tests, you can safely disable this rule.

You can’t perform that action at this time.