UNPKG

5.3 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const lodash_1 = require("lodash");
4const FILTERING_OPTIONS = {
5 testGrep: 'testGrep',
6 fixtureGrep: 'fixtureGrep',
7 testMeta: 'testMeta',
8 fixtureMeta: 'fixtureMeta',
9 test: 'test',
10 fixture: 'fixture'
11};
12function isAllFilteringOptionsAreUndefined(opts) {
13 return Object
14 .keys(FILTERING_OPTIONS)
15 .every(option => opts[option] === void 0);
16}
17function createFilterFn(opts) {
18 return (testName, fixtureName, fixturePath, testMeta, fixtureMeta) => {
19 if (opts.test && testName !== opts.test)
20 return false;
21 if (opts.testGrep && !opts.testGrep.test(testName))
22 return false;
23 if (opts.fixture && fixtureName !== opts.fixture)
24 return false;
25 if (opts.fixtureGrep && !opts.fixtureGrep.test(fixtureName))
26 return false;
27 if (opts.testMeta && !lodash_1.isMatch(testMeta, opts.testMeta))
28 return false;
29 if (opts.fixtureMeta && !lodash_1.isMatch(fixtureMeta, opts.fixtureMeta))
30 return false;
31 return true;
32 };
33}
34function default_1(opts) {
35 const filteringOpts = lodash_1.pick(opts, Object.keys(FILTERING_OPTIONS));
36 if (isAllFilteringOptionsAreUndefined(filteringOpts))
37 return void 0;
38 return Object.assign(createFilterFn(filteringOpts), filteringOpts);
39}
40exports.default = default_1;
41module.exports = exports.default;
42//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWZpbHRlci1mbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9nZXQtZmlsdGVyLWZuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQXVDO0FBRXZDLE1BQU0saUJBQWlCLEdBQUc7SUFDdEIsUUFBUSxFQUFLLFVBQVU7SUFDdkIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsUUFBUSxFQUFLLFVBQVU7SUFDdkIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsSUFBSSxFQUFTLE1BQU07SUFDbkIsT0FBTyxFQUFNLFNBQVM7Q0FDekIsQ0FBQztBQUVGLFNBQVMsaUNBQWlDLENBQUUsSUFBSTtJQUM1QyxPQUFPLE1BQU07U0FDUixJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFFLElBQUk7SUFDekIsT0FBTyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsRUFBRTtRQUNqRSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxJQUFJO1lBQ25DLE9BQU8sS0FBSyxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM5QyxPQUFPLEtBQUssQ0FBQztRQUVqQixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksV0FBVyxLQUFLLElBQUksQ0FBQyxPQUFPO1lBQzVDLE9BQU8sS0FBSyxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN2RCxPQUFPLEtBQUssQ0FBQztRQUVqQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxnQkFBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2xELE9BQU8sS0FBSyxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLGdCQUFPLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDM0QsT0FBTyxLQUFLLENBQUM7UUFFakIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVELG1CQUF5QixJQUFJO0lBQ3pCLE1BQU0sYUFBYSxHQUFHLGFBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFFakUsSUFBSSxpQ0FBaUMsQ0FBQyxhQUFhLENBQUM7UUFDaEQsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUVsQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFQRCw0QkFPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTWF0Y2gsIHBpY2sgfSBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCBGSUxURVJJTkdfT1BUSU9OUyA9IHtcbiAgICB0ZXN0R3JlcDogICAgJ3Rlc3RHcmVwJyxcbiAgICBmaXh0dXJlR3JlcDogJ2ZpeHR1cmVHcmVwJyxcbiAgICB0ZXN0TWV0YTogICAgJ3Rlc3RNZXRhJyxcbiAgICBmaXh0dXJlTWV0YTogJ2ZpeHR1cmVNZXRhJyxcbiAgICB0ZXN0OiAgICAgICAgJ3Rlc3QnLFxuICAgIGZpeHR1cmU6ICAgICAnZml4dHVyZSdcbn07XG5cbmZ1bmN0aW9uIGlzQWxsRmlsdGVyaW5nT3B0aW9uc0FyZVVuZGVmaW5lZCAob3B0cykge1xuICAgIHJldHVybiBPYmplY3RcbiAgICAgICAgLmtleXMoRklMVEVSSU5HX09QVElPTlMpXG4gICAgICAgIC5ldmVyeShvcHRpb24gPT4gb3B0c1tvcHRpb25dID09PSB2b2lkIDApO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWx0ZXJGbiAob3B0cykge1xuICAgIHJldHVybiAodGVzdE5hbWUsIGZpeHR1cmVOYW1lLCBmaXh0dXJlUGF0aCwgdGVzdE1ldGEsIGZpeHR1cmVNZXRhKSA9PiB7XG4gICAgICAgIGlmIChvcHRzLnRlc3QgJiYgdGVzdE5hbWUgIT09IG9wdHMudGVzdClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgICBpZiAob3B0cy50ZXN0R3JlcCAmJiAhb3B0cy50ZXN0R3JlcC50ZXN0KHRlc3ROYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgICBpZiAob3B0cy5maXh0dXJlICYmIGZpeHR1cmVOYW1lICE9PSBvcHRzLmZpeHR1cmUpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgaWYgKG9wdHMuZml4dHVyZUdyZXAgJiYgIW9wdHMuZml4dHVyZUdyZXAudGVzdChmaXh0dXJlTmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgaWYgKG9wdHMudGVzdE1ldGEgJiYgIWlzTWF0Y2godGVzdE1ldGEsIG9wdHMudGVzdE1ldGEpKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGlmIChvcHRzLmZpeHR1cmVNZXRhICYmICFpc01hdGNoKGZpeHR1cmVNZXRhLCBvcHRzLmZpeHR1cmVNZXRhKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAob3B0cykge1xuICAgIGNvbnN0IGZpbHRlcmluZ09wdHMgPSBwaWNrKG9wdHMsIE9iamVjdC5rZXlzKEZJTFRFUklOR19PUFRJT05TKSk7XG5cbiAgICBpZiAoaXNBbGxGaWx0ZXJpbmdPcHRpb25zQXJlVW5kZWZpbmVkKGZpbHRlcmluZ09wdHMpKVxuICAgICAgICByZXR1cm4gdm9pZCAwO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY3JlYXRlRmlsdGVyRm4oZmlsdGVyaW5nT3B0cyksIGZpbHRlcmluZ09wdHMpO1xufVxuIl19
\No newline at end of file