jest/prefer-hooks-in-order 스타일
작동 방식
호크가 호출되는 순서와 동일한 순서로 설정되도록 보장합니다.
왜 좋지 않은가?
호크는 어떤 순서로 설정해도 되지만, jest에서는 항상 다음 특정 순서로 호출됩니다:
beforeAllbeforeEachafterEachafterAll
이 규칙은 테스트 내에서 그룹화된 호크가 해당 순서에 따라 설정되도록 강제함으로써, 이 순서를 더 명확하게 만들고자 합니다.
예시
이 규칙에 부적절한 코드 예시:
javascript
describe("foo", () => {
beforeEach(() => {
seedMyDatabase();
});
beforeAll(() => {
createMyDatabase();
});
it("이 입력을 수락한다", () => {
// ...
});
it("그 값 반환한다", () => {
// ...
});
describe("데이터베이스에 특정 값이 있을 때", () => {
const specificValue = "...";
beforeEach(() => {
seedMyDatabase(specificValue);
});
it("그 입력을 수락한다", () => {
// ...
});
it("오류를 던진다", () => {
// ...
});
afterEach(() => {
clearLogger();
});
beforeEach(() => {
mockLogger();
});
it("메시지를 로깅한다", () => {
// ...
});
});
afterAll(() => {
removeMyDatabase();
});
});이 규칙에 적절한 코드 예시:
javascript
describe("foo", () => {
beforeAll(() => {
createMyDatabase();
});
beforeEach(() => {
seedMyDatabase();
});
it("이 입력을 수락한다", () => {
// ...
});
it("그 값 반환한다", () => {
// ...
});
describe("데이터베이스에 특정 값이 있을 때", () => {
const specificValue = "...";
beforeEach(() => {
seedMyDatabase(specificValue);
});
it("그 입력을 수락한다", () => {
// ...
});
it("오류를 던진다", () => {
// ...
});
beforeEach(() => {
mockLogger();
});
afterEach(() => {
clearLogger();
});
it("메시지를 로깅한다", () => {
// ...
});
});
afterAll(() => {
removeMyDatabase();
});
});이 규칙은 eslint-plugin-vitest와 호환됩니다. 이를 사용하려면 .oxlintrc.json에 다음 구성 항목을 추가하세요:
json
{
"rules": {
"vitest/prefer-hooks-in-order": "error"
}
}사용 방법
이 규칙을 구성 파일 또는 명령줄 인터페이스에서 활성화하려면 다음과 같이 사용할 수 있습니다:
json
{
"plugins": ["jest"],
"rules": {
"jest/prefer-hooks-in-order": "error"
}
}bash
oxlint --deny jest/prefer-hooks-in-order --jest-plugin