testplane
Version:
Tests framework based on mocha and wdio
128 lines • 8.31 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var _SetsBuilder_instances, _SetsBuilder_sets, _SetsBuilder_filesToUse, _SetsBuilder_validateUnknownSets, _SetsBuilder_transformDirsToMasks, _SetsBuilder_getSets, _SetsBuilder_resolvePaths, _SetsBuilder_validateFoundFiles, _SetsBuilder_useFiles, _SetsBuilder_expandFiles, _SetsBuilder_hasFiles;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SetsBuilder = void 0;
const lodash_1 = __importDefault(require("lodash"));
const path_1 = __importDefault(require("path"));
const set_collection_1 = require("./set-collection");
const test_set_1 = require("./test-set");
const FILE_EXTENSIONS = [".js", ".mjs"];
class SetsBuilder {
static create(sets, opts) {
return new SetsBuilder(sets, opts);
}
constructor(sets, opts) {
_SetsBuilder_instances.add(this);
_SetsBuilder_sets.set(this, void 0);
_SetsBuilder_filesToUse.set(this, void 0);
__classPrivateFieldSet(this, _SetsBuilder_sets, lodash_1.default.mapValues(sets, set => test_set_1.TestSet.create(set)), "f");
__classPrivateFieldSet(this, _SetsBuilder_filesToUse, __classPrivateFieldGet(this, _SetsBuilder_instances, "m", _SetsBuilder_hasFiles).call(this) ? [] : opts.defaultPaths, "f");
}
useSets(setsToUse) {
__classPrivateFieldGet(this, _SetsBuilder_instances, "m", _SetsBuilder_validateUnknownSets).call(this, setsToUse);
if (!lodash_1.default.isEmpty(setsToUse)) {
__classPrivateFieldSet(this, _SetsBuilder_sets, lodash_1.default.pick(__classPrivateFieldGet(this, _SetsBuilder_sets, "f"), setsToUse), "f");
}
return this;
}
useFiles(files) {
if (!lodash_1.default.isEmpty(files)) {
__classPrivateFieldSet(this, _SetsBuilder_filesToUse, files, "f");
}
return this;
}
useBrowsers(browsers) {
lodash_1.default.forEach(__classPrivateFieldGet(this, _SetsBuilder_sets, "f"), set => set.useBrowsers(browsers));
return this;
}
build(projectRoot, globOpts = {}, fileExtensions = FILE_EXTENSIONS) {
const expandOpts = { formats: fileExtensions, root: projectRoot };
if (globOpts.ignore) {
globOpts.ignore = []
.concat(globOpts.ignore)
.map(ignorePattern => path_1.default.resolve(projectRoot, ignorePattern));
}
const resolvePathsPromise = __classPrivateFieldGet(this, _SetsBuilder_instances, "m", _SetsBuilder_transformDirsToMasks).call(this).then(() => __classPrivateFieldGet(this, _SetsBuilder_instances, "m", _SetsBuilder_resolvePaths).call(this, projectRoot));
const globExtraPromise = Promise.resolve().then(() => __importStar(require("../../bundle/glob-extra")));
return resolvePathsPromise
.then(() => globExtraPromise)
.then(globExtra => globExtra.expandPaths(__classPrivateFieldGet(this, _SetsBuilder_filesToUse, "f"), expandOpts, globOpts))
.then(expandedFiles => {
__classPrivateFieldGet(this, _SetsBuilder_instances, "m", _SetsBuilder_validateFoundFiles).call(this, expandedFiles);
__classPrivateFieldGet(this, _SetsBuilder_instances, "m", _SetsBuilder_useFiles).call(this, expandedFiles);
})
.then(() => __classPrivateFieldGet(this, _SetsBuilder_instances, "m", _SetsBuilder_expandFiles).call(this, expandOpts, globOpts))
.then(() => set_collection_1.SetCollection.create(__classPrivateFieldGet(this, _SetsBuilder_sets, "f")));
}
}
exports.SetsBuilder = SetsBuilder;
_SetsBuilder_sets = new WeakMap(), _SetsBuilder_filesToUse = new WeakMap(), _SetsBuilder_instances = new WeakSet(), _SetsBuilder_validateUnknownSets = function _SetsBuilder_validateUnknownSets(setsToUse) {
const setsNames = lodash_1.default.keys(__classPrivateFieldGet(this, _SetsBuilder_sets, "f"));
const unknownSets = lodash_1.default.difference(setsToUse, setsNames);
if (lodash_1.default.isEmpty(unknownSets)) {
return;
}
let error = `No such sets: ${unknownSets.join(", ")}.`;
if (!lodash_1.default.isEmpty(setsNames)) {
error += ` Use one of the specified sets: ${setsNames.join(", ")}`;
}
throw new Error(error);
}, _SetsBuilder_transformDirsToMasks = function _SetsBuilder_transformDirsToMasks() {
return Promise.all(__classPrivateFieldGet(this, _SetsBuilder_instances, "m", _SetsBuilder_getSets).call(this).map(set => set.transformDirsToMasks()));
}, _SetsBuilder_getSets = function _SetsBuilder_getSets() {
return lodash_1.default.values(__classPrivateFieldGet(this, _SetsBuilder_sets, "f"));
}, _SetsBuilder_resolvePaths = function _SetsBuilder_resolvePaths(projectRoot) {
lodash_1.default.forEach(__classPrivateFieldGet(this, _SetsBuilder_sets, "f"), set => set.resolveFiles(projectRoot));
}, _SetsBuilder_validateFoundFiles = function _SetsBuilder_validateFoundFiles(foundFiles) {
if (!lodash_1.default.isEmpty(__classPrivateFieldGet(this, _SetsBuilder_filesToUse, "f")) && lodash_1.default.isEmpty(foundFiles)) {
const paths = [].concat(__classPrivateFieldGet(this, _SetsBuilder_filesToUse, "f")).join(", ");
throw new Error(`Cannot find files by specified paths: ${paths}`);
}
}, _SetsBuilder_useFiles = function _SetsBuilder_useFiles(filesToUse) {
lodash_1.default.forEach(__classPrivateFieldGet(this, _SetsBuilder_sets, "f"), set => set.useFiles(filesToUse));
if (!__classPrivateFieldGet(this, _SetsBuilder_instances, "m", _SetsBuilder_hasFiles).call(this)) {
throw new Error("Cannot find files by masks in sets");
}
}, _SetsBuilder_expandFiles = function _SetsBuilder_expandFiles(expandOpts, globOpts) {
return Promise.all(__classPrivateFieldGet(this, _SetsBuilder_instances, "m", _SetsBuilder_getSets).call(this).map(set => set.expandFiles(expandOpts, globOpts)));
}, _SetsBuilder_hasFiles = function _SetsBuilder_hasFiles() {
return lodash_1.default.some(__classPrivateFieldGet(this, _SetsBuilder_sets, "f"), set => !lodash_1.default.isEmpty(set.getFiles()));
};
//# sourceMappingURL=index.js.map