はじめに
Next.jsのテストをvitestで書いていたところエラーが発生しました。
問題
TypeError: vi.mocked(...).mockReturnValue is not a function
【エラーが発生したコード(抜粋)】
import { useRouter } from "next/router";
vi.mock("next/navigation");
const mockRouter = {
refresh: vi.fn(),
} as unknown as ReturnType<typeof useRouter>;
vi.mocked(useRouter).mockReturnValue(mockRouter);
解決方法
import { useRouter } from "next/navigation";
vi.mock("next/navigation");
const mockRouter = {
refresh: vi.fn(),
} as unknown as ReturnType<typeof useRouter>;
vi.mocked(useRouter).mockReturnValue(mockRouter);
importのパスが間違っていたので修正しました。
おわりに
今回はしょうもないミスではあるんですが、エラー文で検索しても別のパターンのエラーしか出てこなかったため記事にしました。
いろんな場合でTypeError: vi.mocked(...).mockReturnValue is not a functionになるんですね。