testcafe
Version:
Automated browser testing for the modern web development stack.
48 lines • 8.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSkipJsErrorsOptions = exports.validateSkipJsErrorsOptionValue = void 0;
const skip_js_errors_option_names_1 = require("../../configuration/skip-js-errors-option-names");
const types_1 = require("../../errors/types");
const runtime_1 = require("../../errors/runtime");
const skip_js_errors_1 = require("../../api/skip-js-errors");
const boolean_or_object_option_1 = require("./boolean-or-object-option");
function validateSkipJsErrorsOptionValue(options, ErrorCtor) {
if ((0, skip_js_errors_1.isSkipJsErrorsCallbackWithOptionsObject)(options))
validateSkipJsErrorsCallbackWithOptionsObject(options, ErrorCtor);
else if ((0, skip_js_errors_1.isSkipJsErrorsOptionsObject)(options))
validateSkipJsErrorsOptionsObject(options, ErrorCtor);
return void 0;
}
exports.validateSkipJsErrorsOptionValue = validateSkipJsErrorsOptionValue;
async function getSkipJsErrorsOptions(optionName, options) {
const onOptionParsed = async (key, value) => {
if (!key || !value)
throw new runtime_1.GeneralError(types_1.RUNTIME_ERRORS.optionValueIsNotValidKeyValue, optionName);
return value;
};
const validator = (opts) => validateSkipJsErrorsOptionsObject(opts, runtime_1.GeneralError);
return await (0, boolean_or_object_option_1.getBooleanOrObjectOption)(optionName, options, {
onOptionParsed,
skipOptionValueTypeConversion: true,
}, validator);
}
exports.getSkipJsErrorsOptions = getSkipJsErrorsOptions;
function _isSkipJsErrorsOptionsObjectOption(option) {
return Object.values(skip_js_errors_option_names_1.SKIP_JS_ERRORS_OPTIONS_OBJECT_OPTION_NAMES).includes(option);
}
function _isSkipJsErrorsCallbackWithOptionsOption(option) {
return Object.values(skip_js_errors_option_names_1.SKIP_JS_ERRORS_CALLBACK_WITH_OPTIONS_OPTION_NAMES).includes(option);
}
function validateSkipJsErrorsOptionsObject(options, ErrorCtor) {
for (const key in options) {
if (!_isSkipJsErrorsOptionsObjectOption(key))
throw new ErrorCtor(types_1.RUNTIME_ERRORS.invalidSkipJsErrorsOptionsObjectProperty, key);
}
}
function validateSkipJsErrorsCallbackWithOptionsObject(options, ErrorCtor) {
for (const key in options) {
if (!_isSkipJsErrorsCallbackWithOptionsOption(key))
throw new ErrorCtor(types_1.RUNTIME_ERRORS.invalidSkipJsErrorsCallbackWithOptionsProperty, key);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpcC1qcy1lcnJvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZ2V0LW9wdGlvbnMvc2tpcC1qcy1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUdBR3lEO0FBQ3pELDhDQUFvRDtBQUNwRCxrREFBb0Q7QUFFcEQsNkRBQWdIO0FBQ2hILHlFQUFzRTtBQUV0RSxTQUFnQiwrQkFBK0IsQ0FBRSxPQUFpSSxFQUFFLFNBQWM7SUFDOUwsSUFBSSxJQUFBLHdEQUF1QyxFQUFDLE9BQU8sQ0FBQztRQUNoRCw2Q0FBNkMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FFakUsSUFBSSxJQUFBLDRDQUEyQixFQUFDLE9BQU8sQ0FBQztRQUN6QyxpQ0FBaUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFMUQsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBUkQsMEVBUUM7QUFFTSxLQUFLLFVBQVUsc0JBQXNCLENBQUUsVUFBa0IsRUFBRSxPQUF1RDtJQUNySCxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsR0FBVyxFQUFFLEtBQWEsRUFBbUIsRUFBRTtRQUN6RSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNkLE1BQU0sSUFBSSxzQkFBWSxDQUFDLHNCQUFjLENBQUMsNkJBQTZCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFckYsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUF3QixFQUFRLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLEVBQUUsc0JBQVksQ0FBQyxDQUFDO0lBRTVHLE9BQU8sTUFBTSxJQUFBLG1EQUF3QixFQUFTLFVBQVUsRUFBRSxPQUFPLEVBQUU7UUFDL0QsY0FBYztRQUNkLDZCQUE2QixFQUFFLElBQUk7S0FDdEMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBYkQsd0RBYUM7QUFFRCxTQUFTLGtDQUFrQyxDQUFFLE1BQWM7SUFDdkQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLHdFQUEwQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQW9ELENBQUMsQ0FBQztBQUNwSSxDQUFDO0FBRUQsU0FBUyx3Q0FBd0MsQ0FBRSxNQUFjO0lBQzdELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQywrRUFBaUQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUEyRCxDQUFDLENBQUM7QUFDbEosQ0FBQztBQUVELFNBQVMsaUNBQWlDLENBQUUsT0FBd0QsRUFBRSxTQUFjO0lBQ2hILEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1FBQ3ZCLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxHQUFHLENBQUM7WUFDeEMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxzQkFBYyxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ3pGO0FBQ0wsQ0FBQztBQUVELFNBQVMsNkNBQTZDLENBQUUsT0FBb0UsRUFBRSxTQUFjO0lBQ3hJLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1FBQ3ZCLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxHQUFHLENBQUM7WUFDOUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxzQkFBYyxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQy9GO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgU0tJUF9KU19FUlJPUlNfQ0FMTEJBQ0tfV0lUSF9PUFRJT05TX09QVElPTl9OQU1FUyxcbiAgICBTS0lQX0pTX0VSUk9SU19PUFRJT05TX09CSkVDVF9PUFRJT05fTkFNRVMsXG59IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24vc2tpcC1qcy1lcnJvcnMtb3B0aW9uLW5hbWVzJztcbmltcG9ydCB7IFJVTlRJTUVfRVJST1JTIH0gZnJvbSAnLi4vLi4vZXJyb3JzL3R5cGVzJztcbmltcG9ydCB7IEdlbmVyYWxFcnJvciB9IGZyb20gJy4uLy4uL2Vycm9ycy9ydW50aW1lJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgaXNTa2lwSnNFcnJvcnNDYWxsYmFja1dpdGhPcHRpb25zT2JqZWN0LCBpc1NraXBKc0Vycm9yc09wdGlvbnNPYmplY3QgfSBmcm9tICcuLi8uLi9hcGkvc2tpcC1qcy1lcnJvcnMnO1xuaW1wb3J0IHsgZ2V0Qm9vbGVhbk9yT2JqZWN0T3B0aW9uIH0gZnJvbSAnLi9ib29sZWFuLW9yLW9iamVjdC1vcHRpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTa2lwSnNFcnJvcnNPcHRpb25WYWx1ZSAob3B0aW9uczogYm9vbGVhbiB8IERpY3Rpb25hcnk8dW5rbm93bj4gfCBTa2lwSnNFcnJvcnNPcHRpb25zT2JqZWN0IHwgU2tpcEpzRXJyb3JzQ2FsbGJhY2sgfCBTa2lwSnNFcnJvcnNDYWxsYmFja1dpdGhPcHRpb25zT2JqZWN0LCBFcnJvckN0b3I6IGFueSk6IHZvaWQge1xuICAgIGlmIChpc1NraXBKc0Vycm9yc0NhbGxiYWNrV2l0aE9wdGlvbnNPYmplY3Qob3B0aW9ucykpXG4gICAgICAgIHZhbGlkYXRlU2tpcEpzRXJyb3JzQ2FsbGJhY2tXaXRoT3B0aW9uc09iamVjdChvcHRpb25zLCBFcnJvckN0b3IpO1xuXG4gICAgZWxzZSBpZiAoaXNTa2lwSnNFcnJvcnNPcHRpb25zT2JqZWN0KG9wdGlvbnMpKVxuICAgICAgICB2YWxpZGF0ZVNraXBKc0Vycm9yc09wdGlvbnNPYmplY3Qob3B0aW9ucywgRXJyb3JDdG9yKTtcblxuICAgIHJldHVybiB2b2lkIDA7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTa2lwSnNFcnJvcnNPcHRpb25zIChvcHRpb25OYW1lOiBzdHJpbmcsIG9wdGlvbnM6IHN0cmluZyB8IGJvb2xlYW4gfCBEaWN0aW9uYXJ5PHN0cmluZyB8IFJlZ0V4cD4pOiBQcm9taXNlPERpY3Rpb25hcnk8c3RyaW5nPiB8IGJvb2xlYW4+IHtcbiAgICBjb25zdCBvbk9wdGlvblBhcnNlZCA9IGFzeW5jIChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gICAgICAgIGlmICgha2V5IHx8ICF2YWx1ZSlcbiAgICAgICAgICAgIHRocm93IG5ldyBHZW5lcmFsRXJyb3IoUlVOVElNRV9FUlJPUlMub3B0aW9uVmFsdWVJc05vdFZhbGlkS2V5VmFsdWUsIG9wdGlvbk5hbWUpO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IHZhbGlkYXRvciA9IChvcHRzOiBEaWN0aW9uYXJ5PHN0cmluZz4pOiB2b2lkID0+IHZhbGlkYXRlU2tpcEpzRXJyb3JzT3B0aW9uc09iamVjdChvcHRzLCBHZW5lcmFsRXJyb3IpO1xuXG4gICAgcmV0dXJuIGF3YWl0IGdldEJvb2xlYW5Pck9iamVjdE9wdGlvbjxzdHJpbmc+KG9wdGlvbk5hbWUsIG9wdGlvbnMsIHtcbiAgICAgICAgb25PcHRpb25QYXJzZWQsXG4gICAgICAgIHNraXBPcHRpb25WYWx1ZVR5cGVDb252ZXJzaW9uOiB0cnVlLFxuICAgIH0sIHZhbGlkYXRvcik7XG59XG5cbmZ1bmN0aW9uIF9pc1NraXBKc0Vycm9yc09wdGlvbnNPYmplY3RPcHRpb24gKG9wdGlvbjogc3RyaW5nKTogb3B0aW9uIGlzIFNLSVBfSlNfRVJST1JTX09QVElPTlNfT0JKRUNUX09QVElPTl9OQU1FUyB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoU0tJUF9KU19FUlJPUlNfT1BUSU9OU19PQkpFQ1RfT1BUSU9OX05BTUVTKS5pbmNsdWRlcyhvcHRpb24gYXMgU0tJUF9KU19FUlJPUlNfT1BUSU9OU19PQkpFQ1RfT1BUSU9OX05BTUVTKTtcbn1cblxuZnVuY3Rpb24gX2lzU2tpcEpzRXJyb3JzQ2FsbGJhY2tXaXRoT3B0aW9uc09wdGlvbiAob3B0aW9uOiBzdHJpbmcpOiBvcHRpb24gaXMgU0tJUF9KU19FUlJPUlNfQ0FMTEJBQ0tfV0lUSF9PUFRJT05TX09QVElPTl9OQU1FUyB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoU0tJUF9KU19FUlJPUlNfQ0FMTEJBQ0tfV0lUSF9PUFRJT05TX09QVElPTl9OQU1FUykuaW5jbHVkZXMob3B0aW9uIGFzIFNLSVBfSlNfRVJST1JTX0NBTExCQUNLX1dJVEhfT1BUSU9OU19PUFRJT05fTkFNRVMpO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVNraXBKc0Vycm9yc09wdGlvbnNPYmplY3QgKG9wdGlvbnM6IERpY3Rpb25hcnk8dW5rbm93bj4gfCBTa2lwSnNFcnJvcnNPcHRpb25zT2JqZWN0LCBFcnJvckN0b3I6IGFueSk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFfaXNTa2lwSnNFcnJvcnNPcHRpb25zT2JqZWN0T3B0aW9uKGtleSkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3JDdG9yKFJVTlRJTUVfRVJST1JTLmludmFsaWRTa2lwSnNFcnJvcnNPcHRpb25zT2JqZWN0UHJvcGVydHksIGtleSk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVNraXBKc0Vycm9yc0NhbGxiYWNrV2l0aE9wdGlvbnNPYmplY3QgKG9wdGlvbnM6IERpY3Rpb25hcnk8dW5rbm93bj4gfCBTa2lwSnNFcnJvcnNDYWxsYmFja1dpdGhPcHRpb25zT2JqZWN0LCBFcnJvckN0b3I6IGFueSk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFfaXNTa2lwSnNFcnJvcnNDYWxsYmFja1dpdGhPcHRpb25zT3B0aW9uKGtleSkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3JDdG9yKFJVTlRJTUVfRVJST1JTLmludmFsaWRTa2lwSnNFcnJvcnNDYWxsYmFja1dpdGhPcHRpb25zUHJvcGVydHksIGtleSk7XG4gICAgfVxufVxuIl19