No pude entender cómo podría escribir una prueba de unidad Jasmine para AddEventListener. ¿Cómo pruebo el siguiente código si addEventListener está funcionando?
private static disableScrollingOnPageWhenPanelOpen(): void { window.addEventListener('DOMMouseScroll', PhoneInputComponent.preventDefault, { passive: false }); window.addEventListener('mousewheel', PhoneInputComponent.preventDefault, { passive: false }); window.addEventListener('touchmove', PhoneInputComponent.preventDefault, { passive: false });}Esto es lo que he intentado pero no estaba funcionando.
describe('disableScrollingOnPageWhenPanelOpen', () => { it('should disable DOMMouseScroll', () => { const e = new Event('DOMMouseScroll'); PhoneInputComponent['disableScrollingOnPageWhenPanelOpen'](); window.dispatchEvent(e); spyOn(window, 'addEventListener').and.callThrough(); expect(window).toHaveBeenCalledWith('e', PhoneInputComponent['preventDefault'], { passive: false }); });¿Podría alguien ayudarme con esto? Iba a probar si se ha llamado a addEventListener, pero no estoy seguro de si el método que estoy usando es el enfoque correcto para probar el código.
expect(window) , esta window de línea no es un espía.
Intenta cambiar la línea a:
expect(window.addEventListener).not.toHaveBeenCalledWith('e', PhoneInputComponent['preventDefault'], { passive: false });