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用に置き換えただけです。