Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
it('should close if Tab is pressed', () => {
fixture.detectChanges();
const display = fixture.debugElement.query(By.css('.display'));
display.nativeElement.dispatchEvent(
EventGenerator.keyDown(Key.Enter),
);
fixture.detectChanges();
expect(uiSuggest.isOpen).toBeTruthy();
const itemContainer = fixture.debugElement.query(By.css('.item-list-container'));
itemContainer.nativeElement.dispatchEvent(
EventGenerator.keyDown(Key.Tab),
);
expect(uiSuggest.isOpen).toBeFalsy();
});
tick(SEARCH_DEBOUNCE);
const searchInput = fixture.debugElement.query(By.css('.mat-input-element')).nativeElement;
searchInput.value = customString;
searchInput.dispatchEvent(EventGenerator.input());
fixture.detectChanges();
tick(SEARCH_DEBOUNCE);
const customItem = fixture.debugElement.query(By.css('.custom-item'));
expect(uiSuggest.items.length).toBeGreaterThan(0);
expect(!!customItem).toBe(true);
const itemContainer = fixture.debugElement.query(By.css('.item-list-container'));
[Key.ArrowUp, Key.ArrowDown, Key.Tab].forEach(key => {
itemContainer.nativeElement.dispatchEvent(
EventGenerator.keyDown(key),
);
fixture.detectChanges();
tick();
});
tick(VIRTUAL_SCROLL_DEBOUNCE);
expect(uiSuggest.value.length).toBe(1);
expect(uiSuggest.value[0].text).toBe(customString);
discardPeriodicTasks();
}));
});