Como podriamos emular event.preventDefault() desde el archivo de pruebas con el triggerEventHandler en vez de pasar un null como segundo ...

Pregunta de la clase:
Componentes con Outputs
Daniel Córdova

Daniel Córdova

Pregunta
student
hace 3 años

Como podriamos emular event.preventDefault() desde el archivo de pruebas con el triggerEventHandler en vez de pasar un null como segundo parametro?

Tengo el siguente funcion cuando hago click en un button:

onSaveForm(event: Event) { event.preventDefault(); /// resto de la funcion }
1 respuestas
    Brayam Esteban Quiñones Sanchez

    Brayam Esteban Quiñones Sanchez

    student
    hace 3 años

    Hola Daniel, lo que podrias hacer es crear un objeto que tenga esta funcion, asi podrias simular este comportamiento.

    const Event = { preventDefault: () => {} }

    Incluso podiras hacer un spy y ver si realmente se esta llamando, en este ejemplo que te comporto, lo ejecuto dos veces para demostrarlo.

    it('should raise select event when do click', () => { //Arrange const expectPerson = new Person('Esteban', 'Qs', 27, 120, 1.65); const Event = { preventDefault: () => {} } component.person = expectPerson; const buttonDebug = fixture.debugElement.query(By.css('button.btn-choose')); const spyEvent = spyOn(Event, 'preventDefault'); let selectedPerson: Person | undefined; component.onSelected. subscribe((person) => { selectedPerson = person; }); //Act buttonDebug.triggerEventHandler('click', Event); fixture.detectChanges(); //Assert expect(spyEvent).toHaveBeenCalledTimes(2); expect(selectedPerson).toEqual(expectPerson); });

    person.component.ts

    onClick(event: Event): void { event.preventDefault(); event.preventDefault(); this.onSelected.emit(this.person); }

    person.component.html

    <button class="btn-choose" (click)="onClick($event)">Chooser</button>
Curso de Angular: Unit Testing para Componentes

Curso de Angular: Unit Testing para Componentes

Prueba componentes Angular con dependencias, aplicando técnicas de mocking y spies. Configura servicios, usa fakeAsync y tick para asincronismo. Asegura comportamiento de directivas, pipes y clics simulados. Mejora integración continua con pruebas.

Curso de Angular: Unit Testing para Componentes
Curso de Angular: Unit Testing para Componentes

Curso de Angular: Unit Testing para Componentes

Prueba componentes Angular con dependencias, aplicando técnicas de mocking y spies. Configura servicios, usa fakeAsync y tick para asincronismo. Asegura comportamiento de directivas, pipes y clics simulados. Mejora integración continua con pruebas.