¿Cómo escribo una prueba unitaria para la función de desplazamiento? No sé cómo escribir pruebas cuando hay eventos, escribí la primera prueba que es fácil. Por favor ayuda
init(){ if (this.isMobile) { this.scroll(div, scrollDown, scrollUp) } } scroll(div: HTMLElement, scrollDown: string | null, scrollUp: string | null) { let prevAnimationAPosY: number = window.scrollY; let prevPosY: number = window.scrollY; window.addEventListener('scroll', function () { const currentPosition: string = prevPosY >= window.scrollY ? 'top : 'bottom; if (currentPosition === 'bottom' && prevPosY > Number(scrollDown)) { div.classList.add('start'); prevAnimationAPosY = window.scrollY; } else if (currentPosition === 'top && prevPosY < (prevAnimationAPosY - Number(scrollUp))) { div.classList.remove('start'); } prevPosY = window.scrollY; }, { passive: true }); }mi prueba:
test("should be started", () => { const hat = new Hat(true), hatSpy = jest.spyOn(hat, "init"); hat.init(); expect(hatSpy).toHaveBeenCalled(); })})