vitest/hoisted-apis-on-top 정확성
작동 방식
호스팅된 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