I want to test an input element on "keydown" event and wrote the below case.
it('should accept input', fakeAsync(() => {
let inputSelector = fixture.debugElement.query(By.css('input')).nativeElement;
expect(inputSelector.value).toBe('', 'value not empty at start');
fixture.detectChanges();
tick();
const event = new KeyboardEvent("keydown", {
key: "a",
code: "KeyA"
});
inputSelector.dispatchEvent(event);
tick();
expect(inputSelector.value).toBe('a', 'value empty after some alphabet keypress');
const eventNum = new KeyboardEvent("keydown", {
key: "1",
code: "Digit1"
});
inputSelector.dispatchEvent(eventNum);
tick();
expect(inputSelector.value).toBe('1', 'value empty after some number keypress');
}));
But the value of inputSelector
always remains empty. I am not sure what am I doing incorrect and what I should do instead.