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 increment negatively if DIRECTION is UP and NAVIGATING UP', () => {
component.direction = 'up';
fixture.detectChanges();
const display = fixture.debugElement.query(By.css('.display'));
display.nativeElement.dispatchEvent(
EventGenerator.keyDown(Key.Enter),
);
const itemContainer = fixture.debugElement.query(By.css('.item-list-container'));
itemContainer.nativeElement.dispatchEvent(
EventGenerator.keyDown(Key.ArrowUp),
);
expect(uiSuggest.activeIndex).toEqual(items.length - 2);
});
it('should have circular active index (reset to first if reached the end)', () => {
fixture.detectChanges();
const display = fixture.debugElement.query(By.css('.display'));
display.nativeElement.dispatchEvent(
EventGenerator.keyDown(Key.Enter),
);
const itemContainer = fixture.debugElement.query(By.css('.item-list-container'));
const keyDownPresses = items.length + 1;
expect(uiSuggest.activeIndex).toEqual(0);
for (let i = 1; i < keyDownPresses; i++) {
itemContainer.nativeElement.dispatchEvent(
EventGenerator.keyDown(Key.ArrowDown),
);
expect(uiSuggest.activeIndex).toEqual(i < items.length ? i : 0);
}
});
const display = fixture.debugElement.query(By.css('.display'));
display.nativeElement.dispatchEvent(EventGenerator.click);
fixture.detectChanges();
const searchInput = fixture.debugElement.query(By.css('.mat-input-element')).nativeElement;
searchInput.value = randomString;
searchInput.dispatchEvent(EventGenerator.input());
fixture.detectChanges();
await fixture.whenStable();
const [query] = sourceSpy.calls.mostRecent().args;
expect(query).toBe(randomString);
const itemContainer = fixture.debugElement.query(By.css('.item-list-container'));
itemContainer.nativeElement.dispatchEvent(
EventGenerator.keyDown(Key.Enter),
);
fixture.detectChanges();
expect(uiSuggest.value[0].text).toBe(randomString);
}));
[Key.ArrowUp, Key.ArrowDown, Key.Tab].forEach(key => {
itemContainer.nativeElement.dispatchEvent(
EventGenerator.keyDown(key),
);
fixture.detectChanges();
tick();
});
searchInput.dispatchEvent(new Event('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'));
itemContainer.nativeElement.dispatchEvent(
EventGenerator.keyDown(Key.ArrowUp),
);
itemContainer.nativeElement.dispatchEvent(
EventGenerator.keyDown(Key.Tab),
);
fixture.detectChanges();
tick(VIRTUAL_SCROLL_DEBOUNCE);
expect(uiSuggest.value.length).toBe(0);
discardPeriodicTasks();
}));