¿Cómo cambiar el valor de un cuadro de selección en la prueba de unidad angular2?
Tengo un componente Angular2 que contiene un cuadro de selección que se parece a
<select [(ngModel)]="envFilter" class="form-control" name="envSelector" (ngModelChange)="onChangeFilter($event)">
<option *ngFor="let env of envs" [ngValue]="env">{{env}}</option>
</select>
Estoy tratando de escribir una prueba unitaria para el evento ngModelChange. Este es mi último intento fallido
it("should filter and show correct items", async(() => {
fixture.detectChanges();
fixture.whenStable().then(() => {
el = fixture.debugElement.query(By.name("envSelector"));
fixture.detectChanges();
makeResponse([hist2, longhist]);
comp.envFilter = 'env3';
el.triggerEventHandler('change', {});
fixture.whenStable().then(() => {
fixture.detectChanges();
expect(comp.displayedHistory).toEqual(longhist);
});
});
La parte con la que tengo problemas es que cambiar el valor del modelo subyacentecomp.envFilter = 'env3';
no activa el método de cambio. yo añadíel.triggerEventHandler('change', {});
pero esto arrojaFailed: Uncaught (in promise): ReferenceError: By is not defined
. No puedo encontrar ninguna pista en la documentación ... ¿alguna idea?