UNPKG

testcafe

Version:

Automated browser testing for the modern web development stack.

44 lines 5.51 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 && !(0, lodash_1.isMatch)(testMeta, opts.testMeta)) return false; if (opts.fixtureMeta && !(0, lodash_1.isMatch)(fixtureMeta, opts.fixtureMeta)) return false; return true; }; } function default_1(opts) { if (typeof opts === 'function') return opts; const filteringOpts = (0, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWZpbHRlci1mbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9nZXQtZmlsdGVyLWZuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQXVDO0FBRXZDLE1BQU0saUJBQWlCLEdBQUc7SUFDdEIsUUFBUSxFQUFLLFVBQVU7SUFDdkIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsUUFBUSxFQUFLLFVBQVU7SUFDdkIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsSUFBSSxFQUFTLE1BQU07SUFDbkIsT0FBTyxFQUFNLFNBQVM7Q0FDekIsQ0FBQztBQUVGLFNBQVMsaUNBQWlDLENBQUUsSUFBSTtJQUM1QyxPQUFPLE1BQU07U0FDUixJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFFLElBQUk7SUFDekIsT0FBTyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsRUFBRTtRQUNqRSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxJQUFJO1lBQ25DLE9BQU8sS0FBSyxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM5QyxPQUFPLEtBQUssQ0FBQztRQUVqQixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksV0FBVyxLQUFLLElBQUksQ0FBQyxPQUFPO1lBQzVDLE9BQU8sS0FBSyxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN2RCxPQUFPLEtBQUssQ0FBQztRQUVqQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFBLGdCQUFPLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDbEQsT0FBTyxLQUFLLENBQUM7UUFFakIsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBQSxnQkFBTyxFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQzNELE9BQU8sS0FBSyxDQUFDO1FBRWpCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxtQkFBeUIsSUFBSTtJQUN6QixJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVU7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFFaEIsTUFBTSxhQUFhLEdBQUcsSUFBQSxhQUFJLEVBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBRWpFLElBQUksaUNBQWlDLENBQUMsYUFBYSxDQUFDO1FBQ2hELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFFbEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBVkQsNEJBVUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc01hdGNoLCBwaWNrIH0gZnJvbSAnbG9kYXNoJztcblxuY29uc3QgRklMVEVSSU5HX09QVElPTlMgPSB7XG4gICAgdGVzdEdyZXA6ICAgICd0ZXN0R3JlcCcsXG4gICAgZml4dHVyZUdyZXA6ICdmaXh0dXJlR3JlcCcsXG4gICAgdGVzdE1ldGE6ICAgICd0ZXN0TWV0YScsXG4gICAgZml4dHVyZU1ldGE6ICdmaXh0dXJlTWV0YScsXG4gICAgdGVzdDogICAgICAgICd0ZXN0JyxcbiAgICBmaXh0dXJlOiAgICAgJ2ZpeHR1cmUnLFxufTtcblxuZnVuY3Rpb24gaXNBbGxGaWx0ZXJpbmdPcHRpb25zQXJlVW5kZWZpbmVkIChvcHRzKSB7XG4gICAgcmV0dXJuIE9iamVjdFxuICAgICAgICAua2V5cyhGSUxURVJJTkdfT1BUSU9OUylcbiAgICAgICAgLmV2ZXJ5KG9wdGlvbiA9PiBvcHRzW29wdGlvbl0gPT09IHZvaWQgMCk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZpbHRlckZuIChvcHRzKSB7XG4gICAgcmV0dXJuICh0ZXN0TmFtZSwgZml4dHVyZU5hbWUsIGZpeHR1cmVQYXRoLCB0ZXN0TWV0YSwgZml4dHVyZU1ldGEpID0+IHtcbiAgICAgICAgaWYgKG9wdHMudGVzdCAmJiB0ZXN0TmFtZSAhPT0gb3B0cy50ZXN0KVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGlmIChvcHRzLnRlc3RHcmVwICYmICFvcHRzLnRlc3RHcmVwLnRlc3QodGVzdE5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGlmIChvcHRzLmZpeHR1cmUgJiYgZml4dHVyZU5hbWUgIT09IG9wdHMuZml4dHVyZSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgICBpZiAob3B0cy5maXh0dXJlR3JlcCAmJiAhb3B0cy5maXh0dXJlR3JlcC50ZXN0KGZpeHR1cmVOYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgICBpZiAob3B0cy50ZXN0TWV0YSAmJiAhaXNNYXRjaCh0ZXN0TWV0YSwgb3B0cy50ZXN0TWV0YSkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgaWYgKG9wdHMuZml4dHVyZU1ldGEgJiYgIWlzTWF0Y2goZml4dHVyZU1ldGEsIG9wdHMuZml4dHVyZU1ldGEpKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChvcHRzKSB7XG4gICAgaWYgKHR5cGVvZiBvcHRzID09PSAnZnVuY3Rpb24nKVxuICAgICAgICByZXR1cm4gb3B0cztcblxuICAgIGNvbnN0IGZpbHRlcmluZ09wdHMgPSBwaWNrKG9wdHMsIE9iamVjdC5rZXlzKEZJTFRFUklOR19PUFRJT05TKSk7XG5cbiAgICBpZiAoaXNBbGxGaWx0ZXJpbmdPcHRpb25zQXJlVW5kZWZpbmVkKGZpbHRlcmluZ09wdHMpKVxuICAgICAgICByZXR1cm4gdm9pZCAwO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY3JlYXRlRmlsdGVyRm4oZmlsdGVyaW5nT3B0cyksIGZpbHRlcmluZ09wdHMpO1xufVxuIl19