Daniel Córdova
PreguntaComo 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 }
Brayam Esteban Quiñones Sanchez
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>
