testcafe
Version:
Automated browser testing for the modern web development stack.
44 lines • 6.29 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const is_letter_1 = __importDefault(require("../../utils/is-letter"));
// @ts-ignore
const testcafe_core_1 = require("../../deps/testcafe-core");
const get_key_identifier_1 = __importDefault(require("../../utils/get-key-identifier"));
const get_key_code_1 = __importDefault(require("../../utils/get-key-code"));
function isNewLineKey(key) {
return testcafe_core_1.KEY_MAPS.newLineKeys.indexOf(key) > -1;
}
function default_1(key, eventKeyProperty) {
const sanitizedKey = (0, testcafe_core_1.getSanitizedKey)(key);
const isChar = key.length === 1 || key === 'space';
const isNewLine = isNewLineKey(key);
const modifierKeyCode = testcafe_core_1.KEY_MAPS.modifiers[sanitizedKey];
const specialKeyCode = testcafe_core_1.KEY_MAPS.specialKeys[sanitizedKey];
eventKeyProperty = eventKeyProperty || key;
return {
sanitizedKey,
isChar,
modifierKeyCode,
specialKeyCode,
isNewLine,
isLetter: (0, is_letter_1.default)(key),
keyIdentifierProperty: (0, get_key_identifier_1.default)(eventKeyProperty),
keyProperty: testcafe_core_1.KEY_MAPS.keyProperty[eventKeyProperty] || eventKeyProperty,
keyCode: getResultKeyCode(key, isChar, sanitizedKey, modifierKeyCode, specialKeyCode),
};
}
exports.default = default_1;
function getResultKeyCode(key, isChar, sanitizedKey, modifierKeyCode, specialKeyCode) {
let keyCode = null;
if (isChar && key !== 'space')
keyCode = (0, get_key_code_1.default)(sanitizedKey);
else if (modifierKeyCode)
keyCode = modifierKeyCode;
else if (specialKeyCode)
keyCode = specialKeyCode;
return keyCode;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWtleS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9hdXRvbWF0aW9uL3BsYXliYWNrL3ByZXNzL2dldC1rZXktaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNFQUFnRDtBQUNoRCxhQUFhO0FBQ2IsNERBQXFFO0FBQ3JFLHdGQUE4RDtBQUM5RCw0RUFBa0Q7QUFjbEQsU0FBUyxZQUFZLENBQUUsR0FBVztJQUM5QixPQUFPLHdCQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsbUJBQXlCLEdBQVcsRUFBRSxnQkFBeUI7SUFDM0QsTUFBTSxZQUFZLEdBQU0sSUFBQSwrQkFBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sTUFBTSxHQUFZLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUM7SUFDNUQsTUFBTSxTQUFTLEdBQVMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sZUFBZSxHQUFHLHdCQUFRLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pELE1BQU0sY0FBYyxHQUFJLHdCQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTNELGdCQUFnQixHQUFHLGdCQUFnQixJQUFJLEdBQUcsQ0FBQztJQUUzQyxPQUFPO1FBQ0gsWUFBWTtRQUNaLE1BQU07UUFDTixlQUFlO1FBQ2YsY0FBYztRQUNkLFNBQVM7UUFDVCxRQUFRLEVBQWUsSUFBQSxtQkFBVyxFQUFDLEdBQUcsQ0FBQztRQUN2QyxxQkFBcUIsRUFBRSxJQUFBLDRCQUFnQixFQUFDLGdCQUFnQixDQUFDO1FBQ3pELFdBQVcsRUFBWSx3QkFBUSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLGdCQUFnQjtRQUNqRixPQUFPLEVBQWdCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUM7S0FDdEcsQ0FBQztBQUNOLENBQUM7QUFwQkQsNEJBb0JDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBRSxHQUFXLEVBQUUsTUFBZSxFQUFFLFlBQW9CLEVBQUUsZUFBdUIsRUFBRSxjQUFzQjtJQUMxSCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFFbkIsSUFBSSxNQUFNLElBQUksR0FBRyxLQUFLLE9BQU87UUFDekIsT0FBTyxHQUFHLElBQUEsc0JBQVUsRUFBQyxZQUFZLENBQUMsQ0FBQztTQUNsQyxJQUFJLGVBQWU7UUFDcEIsT0FBTyxHQUFHLGVBQWUsQ0FBQztTQUN6QixJQUFJLGNBQWM7UUFDbkIsT0FBTyxHQUFHLGNBQWMsQ0FBQztJQUU3QixPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzTGV0dGVyS2V5IGZyb20gJy4uLy4uL3V0aWxzL2lzLWxldHRlcic7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBnZXRTYW5pdGl6ZWRLZXksIEtFWV9NQVBTIH0gZnJvbSAnLi4vLi4vZGVwcy90ZXN0Y2FmZS1jb3JlJztcbmltcG9ydCBnZXRLZXlJZGVudGlmaWVyIGZyb20gJy4uLy4uL3V0aWxzL2dldC1rZXktaWRlbnRpZmllcic7XG5pbXBvcnQgZ2V0S2V5Q29kZSBmcm9tICcuLi8uLi91dGlscy9nZXQta2V5LWNvZGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtleUluZm8ge1xuICAgIHNhbml0aXplZEtleTogc3RyaW5nO1xuICAgIGlzQ2hhcjogYm9vbGVhbjtcbiAgICBtb2RpZmllcktleUNvZGU6IHN0cmluZztcbiAgICBzcGVjaWFsS2V5Q29kZTogc3RyaW5nO1xuICAgIGlzTGV0dGVyOiBib29sZWFuO1xuICAgIGlzTmV3TGluZTogYm9vbGVhbjtcbiAgICBrZXlJZGVudGlmaWVyUHJvcGVydHk6IHN0cmluZztcbiAgICBrZXlQcm9wZXJ0eTogc3RyaW5nO1xuICAgIGtleUNvZGU6IHN0cmluZyB8IG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzTmV3TGluZUtleSAoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gS0VZX01BUFMubmV3TGluZUtleXMuaW5kZXhPZihrZXkpID4gLTE7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChrZXk6IHN0cmluZywgZXZlbnRLZXlQcm9wZXJ0eT86IHN0cmluZyk6IEtleUluZm8ge1xuICAgIGNvbnN0IHNhbml0aXplZEtleSAgICA9IGdldFNhbml0aXplZEtleShrZXkpO1xuICAgIGNvbnN0IGlzQ2hhciAgICAgICAgICA9IGtleS5sZW5ndGggPT09IDEgfHwga2V5ID09PSAnc3BhY2UnO1xuICAgIGNvbnN0IGlzTmV3TGluZSAgICAgICA9IGlzTmV3TGluZUtleShrZXkpO1xuICAgIGNvbnN0IG1vZGlmaWVyS2V5Q29kZSA9IEtFWV9NQVBTLm1vZGlmaWVyc1tzYW5pdGl6ZWRLZXldO1xuICAgIGNvbnN0IHNwZWNpYWxLZXlDb2RlICA9IEtFWV9NQVBTLnNwZWNpYWxLZXlzW3Nhbml0aXplZEtleV07XG5cbiAgICBldmVudEtleVByb3BlcnR5ID0gZXZlbnRLZXlQcm9wZXJ0eSB8fCBrZXk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBzYW5pdGl6ZWRLZXksXG4gICAgICAgIGlzQ2hhcixcbiAgICAgICAgbW9kaWZpZXJLZXlDb2RlLFxuICAgICAgICBzcGVjaWFsS2V5Q29kZSxcbiAgICAgICAgaXNOZXdMaW5lLFxuICAgICAgICBpc0xldHRlcjogICAgICAgICAgICAgIGlzTGV0dGVyS2V5KGtleSksXG4gICAgICAgIGtleUlkZW50aWZpZXJQcm9wZXJ0eTogZ2V0S2V5SWRlbnRpZmllcihldmVudEtleVByb3BlcnR5KSxcbiAgICAgICAga2V5UHJvcGVydHk6ICAgICAgICAgICBLRVlfTUFQUy5rZXlQcm9wZXJ0eVtldmVudEtleVByb3BlcnR5XSB8fCBldmVudEtleVByb3BlcnR5LFxuICAgICAgICBrZXlDb2RlOiAgICAgICAgICAgICAgIGdldFJlc3VsdEtleUNvZGUoa2V5LCBpc0NoYXIsIHNhbml0aXplZEtleSwgbW9kaWZpZXJLZXlDb2RlLCBzcGVjaWFsS2V5Q29kZSksXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVzdWx0S2V5Q29kZSAoa2V5OiBzdHJpbmcsIGlzQ2hhcjogYm9vbGVhbiwgc2FuaXRpemVkS2V5OiBzdHJpbmcsIG1vZGlmaWVyS2V5Q29kZTogc3RyaW5nLCBzcGVjaWFsS2V5Q29kZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgbGV0IGtleUNvZGUgPSBudWxsO1xuXG4gICAgaWYgKGlzQ2hhciAmJiBrZXkgIT09ICdzcGFjZScpXG4gICAgICAgIGtleUNvZGUgPSBnZXRLZXlDb2RlKHNhbml0aXplZEtleSk7XG4gICAgZWxzZSBpZiAobW9kaWZpZXJLZXlDb2RlKVxuICAgICAgICBrZXlDb2RlID0gbW9kaWZpZXJLZXlDb2RlO1xuICAgIGVsc2UgaWYgKHNwZWNpYWxLZXlDb2RlKVxuICAgICAgICBrZXlDb2RlID0gc3BlY2lhbEtleUNvZGU7XG5cbiAgICByZXR1cm4ga2V5Q29kZTtcbn1cbiJdfQ==