In case vitest ver.4.1, We can write mock implementation throw case:
import { describe, vi } from "vitest";
describe("mock implementation throw", () => {
test("before vitest v4.1", () => {
const mockFn = vi.fn().mockImplementation(() => {
throw new Error("mock error");
});
expect(mockFn()).toThrowError("mock error");
});
test("aftervitest v4.1", () => {
const mockFn = vi.fn().mockThrow(new Error("mock error"));
expect(mockFn()).toThrowError("mock error");
});
});
So, I believe we recommend mockThrow by new rule like this:
- Issue a warning if
mockImplementation is called and contains only a throw statement.
- In the
fix, replace mockImplementation with mockThrow.
In case vitest ver.4.1, We can write mock implementation throw case:
So, I believe we recommend
mockThrowby new rule like this:mockImplementationis called and contains only athrowstatement.fix, replacemockImplementationwithmockThrow.