UNPKG

@browserstack/testcafe

Version:

Automated browser testing for the modern web development stack.

42 lines 5.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const lodash_1 = require("lodash"); const FILTERING_OPTIONS = { testGrep: 'testGrep', fixtureGrep: 'fixtureGrep', testMeta: 'testMeta', fixtureMeta: 'fixtureMeta', test: 'test', fixture: 'fixture' }; function isAllFilteringOptionsAreUndefined(opts) { return Object .keys(FILTERING_OPTIONS) .every(option => opts[option] === void 0); } function createFilterFn(opts) { return (testName, fixtureName, fixturePath, testMeta, fixtureMeta) => { if (opts.test && testName !== opts.test) return false; if (opts.testGrep && !opts.testGrep.test(testName)) return false; if (opts.fixture && fixtureName !== opts.fixture) return false; if (opts.fixtureGrep && !opts.fixtureGrep.test(fixtureName)) return false; if (opts.testMeta && !lodash_1.isMatch(testMeta, opts.testMeta)) return false; if (opts.fixtureMeta && !lodash_1.isMatch(fixtureMeta, opts.fixtureMeta)) return false; return true; }; } function default_1(opts) { const filteringOpts = lodash_1.pick(opts, Object.keys(FILTERING_OPTIONS)); if (isAllFilteringOptionsAreUndefined(filteringOpts)) return void 0; return Object.assign(createFilterFn(filteringOpts), filteringOpts); } exports.default = default_1; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWZpbHRlci1mbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9nZXQtZmlsdGVyLWZuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQXVDO0FBRXZDLE1BQU0saUJBQWlCLEdBQUc7SUFDdEIsUUFBUSxFQUFLLFVBQVU7SUFDdkIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsUUFBUSxFQUFLLFVBQVU7SUFDdkIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsSUFBSSxFQUFTLE1BQU07SUFDbkIsT0FBTyxFQUFNLFNBQVM7Q0FDekIsQ0FBQztBQUVGLFNBQVMsaUNBQWlDLENBQUUsSUFBSTtJQUM1QyxPQUFPLE1BQU07U0FDUixJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFFLElBQUk7SUFDekIsT0FBTyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsRUFBRTtRQUNqRSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxJQUFJO1lBQ25DLE9BQU8sS0FBSyxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM5QyxPQUFPLEtBQUssQ0FBQztRQUVqQixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksV0FBVyxLQUFLLElBQUksQ0FBQyxPQUFPO1lBQzVDLE9BQU8sS0FBSyxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN2RCxPQUFPLEtBQUssQ0FBQztRQUVqQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxnQkFBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2xELE9BQU8sS0FBSyxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLGdCQUFPLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDM0QsT0FBTyxLQUFLLENBQUM7UUFFakIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVELG1CQUF5QixJQUFJO0lBQ3pCLE1BQU0sYUFBYSxHQUFHLGFBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFFakUsSUFBSSxpQ0FBaUMsQ0FBQyxhQUFhLENBQUM7UUFDaEQsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUVsQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFQRCw0QkFPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTWF0Y2gsIHBpY2sgfSBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCBGSUxURVJJTkdfT1BUSU9OUyA9IHtcbiAgICB0ZXN0R3JlcDogICAgJ3Rlc3RHcmVwJyxcbiAgICBmaXh0dXJlR3JlcDogJ2ZpeHR1cmVHcmVwJyxcbiAgICB0ZXN0TWV0YTogICAgJ3Rlc3RNZXRhJyxcbiAgICBmaXh0dXJlTWV0YTogJ2ZpeHR1cmVNZXRhJyxcbiAgICB0ZXN0OiAgICAgICAgJ3Rlc3QnLFxuICAgIGZpeHR1cmU6ICAgICAnZml4dHVyZSdcbn07XG5cbmZ1bmN0aW9uIGlzQWxsRmlsdGVyaW5nT3B0aW9uc0FyZVVuZGVmaW5lZCAob3B0cykge1xuICAgIHJldHVybiBPYmplY3RcbiAgICAgICAgLmtleXMoRklMVEVSSU5HX09QVElPTlMpXG4gICAgICAgIC5ldmVyeShvcHRpb24gPT4gb3B0c1tvcHRpb25dID09PSB2b2lkIDApO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWx0ZXJGbiAob3B0cykge1xuICAgIHJldHVybiAodGVzdE5hbWUsIGZpeHR1cmVOYW1lLCBmaXh0dXJlUGF0aCwgdGVzdE1ldGEsIGZpeHR1cmVNZXRhKSA9PiB7XG4gICAgICAgIGlmIChvcHRzLnRlc3QgJiYgdGVzdE5hbWUgIT09IG9wdHMudGVzdClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgICBpZiAob3B0cy50ZXN0R3JlcCAmJiAhb3B0cy50ZXN0R3JlcC50ZXN0KHRlc3ROYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgICBpZiAob3B0cy5maXh0dXJlICYmIGZpeHR1cmVOYW1lICE9PSBvcHRzLmZpeHR1cmUpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgaWYgKG9wdHMuZml4dHVyZUdyZXAgJiYgIW9wdHMuZml4dHVyZUdyZXAudGVzdChmaXh0dXJlTmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgaWYgKG9wdHMudGVzdE1ldGEgJiYgIWlzTWF0Y2godGVzdE1ldGEsIG9wdHMudGVzdE1ldGEpKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGlmIChvcHRzLmZpeHR1cmVNZXRhICYmICFpc01hdGNoKGZpeHR1cmVNZXRhLCBvcHRzLmZpeHR1cmVNZXRhKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAob3B0cykge1xuICAgIGNvbnN0IGZpbHRlcmluZ09wdHMgPSBwaWNrKG9wdHMsIE9iamVjdC5rZXlzKEZJTFRFUklOR19PUFRJT05TKSk7XG5cbiAgICBpZiAoaXNBbGxGaWx0ZXJpbmdPcHRpb25zQXJlVW5kZWZpbmVkKGZpbHRlcmluZ09wdHMpKVxuICAgICAgICByZXR1cm4gdm9pZCAwO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY3JlYXRlRmlsdGVyRm4oZmlsdGVyaW5nT3B0cyksIGZpbHRlcmluZ09wdHMpO1xufVxuIl19