ng2-semantic-ui icon indicating copy to clipboard operation
ng2-semantic-ui copied to clipboard

sui-select with optionTemplate fails unit tests

Open jpsilv opened this issue 5 years ago • 0 comments

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

jpsilv avatar Nov 29 '19 17:11 jpsilv