Skip to content
← Back to rules

vitest/hoisted-apis-on-top 정확성

An auto-fix is available for this rule.

작동 방식

호스팅된 API가 파일의 상단에 위치하도록 강제합니다.

왜 문제인가요?

일부 Vitest API는 변환 과정에서 자동으로 호스팅됩니다. 이러한 API를 런타임 코드처럼 사용하면 테스트 실행 시 예기치 못한 결과가 발생할 수 있습니다.

예시

이 규칙에 위배되는 잘못된 코드 예시:

js
if (condition) {
  vi.mock("some-module", () => {});
}
js
if (condition) {
  vi.unmock("some-module", () => {});
}
js
if (condition) {
  vi.hoisted(() => {});
}
js
describe("suite", () => {
  it("test", async () => {
    vi.mock("some-module", () => {});

    const sm = await import("some-module");
  });
});

이 규칙을 따르는 올바른 코드 예시:

js
if (condition) {
  vi.doMock("some-module", () => {});
}
js
vi.mock("some-module", () => {});
if (condition) {
}
js
vi.unmock("some-module", () => {});
if (condition) {
}
js
vi.hoisted(() => {});
if (condition) {
}
js
vi.mock("some-module", () => {});

describe("suite", () => {
  it("test", async () => {
    const sm = await import("some-module");
  });
});

사용 방법

이 규칙을 구성 파일 또는 명령줄 인터페이스에서 활성화하려면 다음을 사용하세요:

json
{
  "plugins": ["vitest"],
  "rules": {
    "vitest/hoisted-apis-on-top": "error"
  }
}
bash
oxlint --deny vitest/hoisted-apis-on-top --vitest-plugin

참고 자료