Skip to content
← Back to rules

jest/no-conditional-in-test Pedantic

작동 방식

테스트 내에서 조건문을 허용하지 않습니다.

왜 문제가 되는가?

테스트 내 조건문은 테스트를 더 어렵게 읽고 이해하게 만듭니다. 각 테스트 함수에는 하나의 테스트 케이스만 있어야 합니다.

예시

이 규칙에 부적절한 코드 예시:

js
it("foo", () => {
  if (true) {
    doTheThing();
  }
});

it("bar", () => {
  switch (mode) {
    case "none":
      generateNone();
    case "single":
      generateOne();
    case "multiple":
      generateMany();
  }

  expect(fixtures.length).toBeGreaterThan(-1);
});

it("baz", async () => {
  const promiseValue = () => {
    return something instanceof Promise ? something : Promise.resolve(something);
  };

  await expect(promiseValue()).resolves.toBe(1);
});

이 규칙에 적절한 코드 예시:

js
describe("my tests", () => {
  if (true) {
    it("foo", () => {
      doTheThing();
    });
  }
});

beforeEach(() => {
  switch (mode) {
    case "none":
      generateNone();
    case "single":
      generateOne();
    case "multiple":
      generateMany();
  }
});

it("bar", () => {
  expect(fixtures.length).toBeGreaterThan(-1);
});

const promiseValue = (something) => {
  return something instanceof Promise ? something : Promise.resolve(something);
};

it("baz", async () => {
  await expect(promiseValue()).resolves.toBe(1);
});

이 규칙은 eslint-plugin-vitest와 호환됩니다. 이를 사용하려면 다음 설정을 .oxlintrc.json에 추가하세요:

json
{
  "rules": {
    "vitest/no-conditional-in-test": "error"
  }
}

사용 방법

구성 파일 또는 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:

json
{
  "plugins": ["jest"],
  "rules": {
    "jest/no-conditional-in-test": "error"
  }
}
bash
oxlint --deny jest/no-conditional-in-test --jest-plugin

참고 자료