113 lines
2.6 KiB
JavaScript
113 lines
2.6 KiB
JavaScript
|
import Keyboard, { SHORTKEY } from '../../../modules/keyboard';
|
||
|
|
||
|
|
||
|
describe('Keyboard', function() {
|
||
|
describe('match', function() {
|
||
|
it('no modifiers', function() {
|
||
|
let binding = {
|
||
|
key: 'a'
|
||
|
};
|
||
|
expect(Keyboard.match({
|
||
|
keyCode: 'A'.charCodeAt(0),
|
||
|
shiftKey: false,
|
||
|
metaKey: false,
|
||
|
ctrlKey: false,
|
||
|
altKey: false
|
||
|
}, binding)).toBe(true);
|
||
|
expect(Keyboard.match({
|
||
|
keyCode: 'A'.charCodeAt(0),
|
||
|
shiftKey: true,
|
||
|
metaKey: false,
|
||
|
ctrlKey: false,
|
||
|
altKey: false
|
||
|
}, binding)).toBe(false);
|
||
|
});
|
||
|
|
||
|
it('simple modifier', function() {
|
||
|
let binding = {
|
||
|
key: 'a',
|
||
|
shiftKey: true
|
||
|
};
|
||
|
expect(Keyboard.match({
|
||
|
keyCode: 'A'.charCodeAt(0),
|
||
|
shiftKey: false,
|
||
|
metaKey: false,
|
||
|
ctrlKey: false,
|
||
|
altKey: false
|
||
|
}, binding)).toBe(false);
|
||
|
expect(Keyboard.match({
|
||
|
keyCode: 'A'.charCodeAt(0),
|
||
|
shiftKey: true,
|
||
|
metaKey: false,
|
||
|
ctrlKey: false,
|
||
|
altKey: false
|
||
|
}, binding)).toBe(true);
|
||
|
});
|
||
|
|
||
|
it('optional modifier', function() {
|
||
|
let binding = {
|
||
|
key: 'a',
|
||
|
shiftKey: null
|
||
|
};
|
||
|
expect(Keyboard.match({
|
||
|
keyCode: 'A'.charCodeAt(0),
|
||
|
shiftKey: false,
|
||
|
metaKey: false,
|
||
|
ctrlKey: false,
|
||
|
altKey: false
|
||
|
}, binding)).toBe(true);
|
||
|
expect(Keyboard.match({
|
||
|
keyCode: 'A'.charCodeAt(0),
|
||
|
shiftKey: true,
|
||
|
metaKey: false,
|
||
|
ctrlKey: false,
|
||
|
altKey: false
|
||
|
}, binding)).toBe(true);
|
||
|
});
|
||
|
|
||
|
it('shortkey modifier', function() {
|
||
|
let binding = {
|
||
|
key: 'a',
|
||
|
shortKey: true
|
||
|
};
|
||
|
expect(Keyboard.match({
|
||
|
keyCode: 'A'.charCodeAt(0),
|
||
|
shiftKey: false,
|
||
|
metaKey: false,
|
||
|
ctrlKey: false,
|
||
|
altKey: false
|
||
|
}, binding)).toBe(false);
|
||
|
expect(Keyboard.match({
|
||
|
keyCode: 'A'.charCodeAt(0),
|
||
|
shiftKey: false,
|
||
|
metaKey: false,
|
||
|
ctrlKey: false,
|
||
|
altKey: false,
|
||
|
[SHORTKEY]: true
|
||
|
}, binding)).toBe(true);
|
||
|
});
|
||
|
|
||
|
it('native shortkey modifier', function() {
|
||
|
let binding = {
|
||
|
key: 'a',
|
||
|
[SHORTKEY]: true
|
||
|
};
|
||
|
expect(Keyboard.match({
|
||
|
keyCode: 'A'.charCodeAt(0),
|
||
|
shiftKey: false,
|
||
|
metaKey: false,
|
||
|
ctrlKey: false,
|
||
|
altKey: false
|
||
|
}, binding)).toBe(false);
|
||
|
expect(Keyboard.match({
|
||
|
keyCode: 'A'.charCodeAt(0),
|
||
|
shiftKey: false,
|
||
|
metaKey: false,
|
||
|
ctrlKey: false,
|
||
|
altKey: false,
|
||
|
[SHORTKEY]: true
|
||
|
}, binding)).toBe(true);
|
||
|
});
|
||
|
});
|
||
|
});
|