Skip to content

feature request: new rule no-mock-implementation-throw #948

Description

@ysknsid25

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions