@platform/react
Version:
React refs and helpers.
93 lines (92 loc) • 4.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var test_1 = require("../test");
var _1 = require(".");
describe('keyboard', function () {
describe('(static) parse', function () {
it('string', function () {
var test = function (pattern, expectedKeys, expectedModifiers) {
if (expectedModifiers === void 0) { expectedModifiers = []; }
var res = _1.Keyboard.parse(pattern);
(0, test_1.expect)(res.keys).to.eql(expectedKeys);
(0, test_1.expect)(res.modifiers).to.eql(expectedModifiers);
};
test('', []);
test('r', ['R']);
test(' r ', ['R']);
test('+r', ['R']);
test('+r+', ['R']);
test(' + r + ', ['R']);
test('r+R+r', ['R']);
test('cmd+l', ['L'], ['META']);
test('MetA+l', ['L'], ['META']);
test('ComMand+l', ['L'], ['META']);
test('cmd+l+alt', ['L'], ['META', 'ALT']);
test('cmd+ALT+Shift+l+aLt+P+ctrl+SHIFT', ['L', 'P'], ['META', 'ALT', 'SHIFT', 'CTRL']);
test('CMD+ALT+J', ['J'], ['META', 'ALT']);
test('ArrowUp', ['ArrowUp']);
test('CMD+ArrowUp', ['ArrowUp'], ['META']);
});
it('boolean', function () {
var test = function (pattern) {
var res = _1.Keyboard.parse(pattern);
(0, test_1.expect)(res).to.eql({ keys: [], modifiers: [] });
};
test(true);
test(false);
});
it('undefined', function () {
var test = function (pattern) {
var res = _1.Keyboard.parse(pattern);
(0, test_1.expect)(res).to.eql({ keys: [], modifiers: [] });
};
test();
test(undefined);
});
it('default value', function () {
var test = function (pattern, defaultValue, expectedKeys, expectedModifiers) {
if (expectedModifiers === void 0) { expectedModifiers = []; }
var res = _1.Keyboard.parse(pattern, defaultValue);
(0, test_1.expect)(res.keys).to.eql(expectedKeys);
(0, test_1.expect)(res.modifiers).to.eql(expectedModifiers);
};
test(undefined, 'CMD+Z', ['Z'], ['META']);
test('', 'CMD+Z', ['Z'], ['META']);
test(' ', 'CMD+Z', ['Z'], ['META']);
test(true, 'CMD+Z', ['Z'], ['META']);
test(false, 'CMD+Z', [], []);
});
});
describe('(static) includes', function () {
var test = function (pattern, event, expected) {
var res = _1.Keyboard.matchEvent(pattern, event);
(0, test_1.expect)(res).to.eql(expected);
};
it('from pattern object', function () {
test(_1.Keyboard.parse('r'), { key: 'r' }, true);
test(_1.Keyboard.parse('CMD+r'), { key: 'r', metaKey: true }, true);
test(_1.Keyboard.parse('CMD+r'), { key: 'R' }, false);
});
it('from pattern string', function () {
test('r', { key: 'r' }, true);
test('CMD+r', { key: 'r', metaKey: true }, true);
test('CMD+r', { key: 'R', metaKey: true }, true);
test('cmd+r', { key: 'R', metaKey: true }, true);
test('CMD+ALT+SHIFT+CTRL+R', { key: 'r', metaKey: true, ctrlKey: true, altKey: true, shiftKey: true }, true);
test('CMD+r', { key: 'R' }, false);
test('ALT+r', { key: 'R' }, false);
test('SHIFT+r', { key: 'R' }, false);
test('CTRL+r', { key: 'R' }, false);
test('CMD+SHIFT+L', { key: 'L', metaKey: true, shiftKey: true }, true);
test('CMD+SHIFT+L', { key: 'L', metaKey: true }, false);
test('CMD+L', { key: 'L', metaKey: true, shiftKey: true }, false);
test('CMD+K', { key: 'k', metaKey: true }, true);
test('s', { key: 's' }, true);
test('s', { key: 'S' }, true);
test('S', { key: 's' }, true);
test('ArrowUp', { key: 'ArrowUp' }, true);
test('CMD+ArrowUp', { key: 'ArrowUp' }, false);
test('CMD+ArrowUp', { key: 'ArrowUp', metaKey: true }, true);
});
});
});