gemini
Version:
UI Screenshot testing utility
43 lines (32 loc) • 1.16 kB
JavaScript
;
const _ = require('lodash');
module.exports = class Skip {
constructor(suite) {
this._suite = suite;
}
_validateArgs(browsers) {
if (!this._isArrayOfStringsAndRegExps(browsers)) {
throw new TypeError('Browsers must be an array with strings and RegExp objects');
}
}
_shouldSkip(browsers, {negate} = {}) {
const fn = negate ? _.every : _.some;
return (browserId) => fn(this._mkBrowsersMatcher(browsers, {negate}), (matcher) => matcher(browserId));
}
_mkBrowsersMatcher(browsers, {negate}) {
const mkMatcher = (browser) => _.isRegExp(browser) ? browser.test.bind(browser) : _.isEqual.bind(null, browser);
return browsers.map((browser) => negate ? _.negate(mkMatcher(browser)) : mkMatcher(browser));
}
_isArrayOfStringsAndRegExps(arr) {
return _.isArray(arr) && _.every(arr, (item) => _.isString(item) || _.isRegExp(item));
}
in() {
return new Error('Not implemented');
}
notIn() {
return new Error('Not implemented');
}
buildAPI() {
return new Error('Not implemented');
}
};