Vitestでnext/dynamicをmockする

注意: dynamic componentを含むcomponentのテストができるようになるだけで、dynamic componentを表示しようとすると現状エラーになってしまいます。

vi.mock('next/dynamic', () => ({
  __esModule: true,
  default: async (...props: any) => {
    const dynamicModule = await vi.importActual<any>('next/dynamic');
    const dynamicActualComp = dynamicModule.default;
    const RequiredComponent = dynamicActualComp(props[0]);
    RequiredComponent.preload
      ? RequiredComponent.preload()
      : RequiredComponent.render.preload();
    return RequiredComponent;
  },
}));

こちらを参考にしました。Jestの記述をVitest用に置き換えただけです。



そういえば、推しのアイドルグループのEPの発売したので、とりあえず聞いてみてほしい