Angular triggerEventHandler не вызывает rx js fromEvent - PullRequest
0 голосов
/ 30 марта 2020

При работе над модульным тестом я обнаружил, что fromEvent в Rx Js не обнаруживает никаких событий, когда я запускаю обработчик событий, используя inputDE.triggerEventHandler('blur', {}).

Однако, если я изменяю его на inputDE.nativeElement.dispatchEvent(new Event('blur', {})) это работает.

Может кто-нибудь объяснить мне это поведение? Потому что я ничего не нашел о причине такого поведения.

Просто так, это важно, вот тест

@Component({
  template: '<input [(ngModel)]="val" [min]="min" type="text">'
})
class Host {
  val = '';
  min = 5;
}

...
beforeEach(() => {
    fixture = TestBed.createComponent(Host);
    component = fixture.componentInstance;
    inputDE = fixture.debugElement.query(By.css('input'));
})
...

 it('should change value to 4', fakeAsync(() => {
    component.val = '1';
    component.min = 4;
    fixture.detectChanges();
    tick();

    // inputDE.triggerEventHandler('blur', {});
    inputDE.nativeElement.dispatchEvent(new Event('blur', {}));

    fixture.detectChanges();
    tick();

    expect(component.val).toEqual('4');
  }));
...