Cara Mengatasi Error Jest "Not implemented: window.scrollTo"

1 menit baca.
Tags: JavaScriptJest

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.