Модульное тестирование для выпадающего выбора углового 5 - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь проверить выпадающий выбор, я могу получить nativeElement и опции, но я сталкиваюсь с ошибкой с событием отправки

, как-то, как событие не перехватывается.

HTML

<select [(ngModel)]='selectedTemplate' class="gridDropdowns" name="compareDropdown" (ngModelChange)="onTemplateChange($event)">
    <option *ngFor='let option of templateDropdown' [attr.id] = "option.text" [ngValue]="option.value" >{{option.text}}</option>
</select>

компонент

   public templateDropdown: Array<{ text: string, value: string }> = 
    [
        { text: 'Layer Summary - Final Share', value: 'final' },
        { text: 'Layer Summary - Authorized Share', value: 'authorize' },
        { text: 'Layer Summary - Quote Share', value: 'quote' },
        { text: 'PML Summary (100%)', value: 'pmlSummary' },
        { text: 'Metric Comp Summary', value: 'metricComp' }
    ];

onTemplateChange(event: any) {
    console.log(event);
}

Компонент.spec.ts

it('Load corresponding data on Template dropdown change', async(() => {
    fixture = TestBed.createComponent(CompareComponent);
    component = fixture.componentInstance;
    spyOn(component, 'onTemplateChange');
    component.selectedTemplate= component.templateDropdown[1].value;
    fixture.detectChanges();
    const templateDropdown = fixture.debugElement.query(By.css('select'));
    fixture.whenStable().then(() =>{
        templateDropdown.nativeElement.value = 'Layer Summary - Authorized Share'
        templateDropdown.nativeElement.dispatchEvent(new Event('change'));
        fixture.detectChanges();
        expect(component.onTemplateChange).toHaveBeenCalledWith('authorize')
    })

}));

Ошибка, которую я получаю

enter image description here

Я беру это Ссылка

...