Saat menjalankan test frontend, kamu mungkin ketemu error ini:
Error: Not implemented: window.scrollTo
TypeError: window.scrollTo is not a function
Baris pertama adalah pesan dari jsdom, baris kedua muncul saat property-nya tidak ada. Dua-duanya normal di Jest + jsdom, karena jsdom tidak mengimplementasikan sebagian API browser.
Fix cepat di setup Jest
Tambahkan ini di jest.setup.ts (atau file setup kamu):
Object.defineProperty(window, 'scrollTo', {
value: jest.fn(),
writable: true,
});
Sekarang test yang memanggil window.scrollTo tidak akan crash lagi.
Alternatif cara mock
Kamu juga bisa assign langsung:
window.scrollTo = jest.fn();
Dua-duanya jalan, tapi defineProperty lebih aman kalau property descriptor-nya ketat.
Verifikasi di test
it('calls scrollTo on open', () => {
render(<MyModal />);
fireEvent.click(screen.getByRole('button', { name: /open/i }));
expect(window.scrollTo).toHaveBeenCalled();
});
Test ini memastikan mock aktif dan perilaku komponen bisa dites.
Daftarkan file setup di config Jest
Pastikan Jest memakai file setup kamu:
setupFilesAfterEnv: ['<rootDir>/jest.setup.ts']
Kalau baris ini tidak ada, mock-nya tidak akan ter-load.