Skip to content

Commit 8b6f2b0

Browse files
fix: add code to KeyboardEvent (#512)
1 parent 640c84b commit 8b6f2b0

File tree

4 files changed

+11
-0
lines changed

4 files changed

+11
-0
lines changed

projects/spectator/src/lib/event-creators.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ export function createKeyboardEvent(type: string, keyOrKeyCode: string | number
7272
// Webkit Browsers don't set the keyCode when calling the init function.
7373
// See related bug https://bugs.webkit.org/show_bug.cgi?id=16735
7474
Object.defineProperties(event, {
75+
code: { get: () => keyCode },
7576
keyCode: { get: () => keyCode },
7677
key: { get: () => key },
7778
target: { get: () => target },

projects/spectator/test/events/events.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ <h1>{{ event }}</h1>
55
(keyup.control.shift.a)="onPressCtrlShiftA()"
66
(keyup.dot)="onPressDot()"
77
(keyup.arrowleft)="onPressArrowLeft($event)"
8+
(keyup.arrowup)="onPressArrowUp($event)"
89
(keyup.control.shift.arrowright)="onPressArrowRight($event)"
910
>

projects/spectator/test/events/events.component.spec.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ describe('EventsComponent', () => {
4444
expect(spectator.query('h1')).toHaveText('pressed ArrowLeft:40');
4545
});
4646

47+
it('should include key and code when KeyboardEventOptions are passed', () => {
48+
spectator.dispatchKeyboardEvent('input', 'keyup', { key: 'ArrowUp', keyCode: 38 });
49+
expect(spectator.query('h1')).toHaveText('pressed ArrowUp:38');
50+
});
51+
4752
it('should parse modifiers from KeyboardEventOptions.key', () => {
4853
spectator.dispatchKeyboardEvent('input', 'keyup', { key: 'ctrl.shift.ArrowRight', keyCode: 39 });
4954
expect(spectator.query('h1')).toHaveText('pressed ArrowRight:39');

projects/spectator/test/events/events.component.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,8 @@ export class EventsComponent {
3939
public onPressArrowRight(event: KeyboardEvent): void {
4040
this.event = `pressed ArrowRight:${event.keyCode}`;
4141
}
42+
43+
public onPressArrowUp(event: KeyboardEvent): void {
44+
this.event = `pressed ${event.key}:${event.code}`;
45+
}
4246
}

0 commit comments

Comments
 (0)