ng2-semantic-ui
ng2-semantic-ui copied to clipboard
sui-select with optionTemplate fails unit tests
Bug description:
Unit tests fail with:
TypeError: Cannot read property 'clear' of undefined
at SuiSelectBase.drawTemplate (node_modules/ng2-semantic-ui/dist/modules/select/classes/select-base.js:368:1)
at SuiSelectBase.initialiseRenderedOption (node_modules/ng2-semantic-ui/dist/modules/select/classes/select-base.js:299:1)
at SuiSelect.initialiseRenderedOption (node_modules/ng2-semantic-ui/dist/modules/select/components/select.js:99:1)
at node_modules/ng2-semantic-ui/dist/modules/select/classes/select-base.js:287:37
When testing an option change in sui-select with an optionTemplate.
Got something like:
HTML:
<ng-container>
<ng-template let-option #optionTemplate>
<span><i class="lock icon"></i>{{ option.name }}</span>
</ng-template>
<sui-select #dropdown
id="dataPointSetSelector"
class="{{ cssClass }}"
labelField="name"
[options]="options"
[optionTemplate]="optionTemplate"
[isSearchable]="false"
(selectedOptionChange)="select($event)">
<sui-select-option *ngFor="let o of dropdown.filteredOptions" [value]="o"></sui-select-option>
</sui-select>
</ng-container>
spec.ts:
fit('test', fakeAsync(() => {
MockNgRedux.getSelectorStub(['options']).next(options);
fixture.detectChanges();
const secondOption = fixture.debugElement.queryAll(By.css('sui-select-option'))[1].nativeElement;
secondOption.click();
fixture.detectChanges();
tick(200);
expect(spy.selectOptions).toHaveBeenCalledWith([options[1]], component.statePath);
}));
Version of Angular, ng2-semantic-ui, and Semantic UI:
Angular: 7.3.6
ng2-semantic-ui: 0.9.6
Semantic UI: not sure