UNPKG

intern

Version:

Intern. A next-generation code testing stack for JavaScript.

102 lines 4.15 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "tslib", "@theintern/common", "../Suite", "../Test"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createSuite = exports.isSuiteDescriptorFactory = exports.getInterface = void 0; var tslib_1 = require("tslib"); var common_1 = require("@theintern/common"); var Suite_1 = tslib_1.__importDefault(require("../Suite")); var Test_1 = tslib_1.__importStar(require("../Test")); function registerSuite(name, descriptorOrFactory) { return _registerSuite(common_1.global.intern, name, descriptorOrFactory); } exports.default = registerSuite; function getInterface(executor) { return { registerSuite: function (name, descriptorOrFactory) { return _registerSuite(executor, name, descriptorOrFactory); } }; } exports.getInterface = getInterface; function isSuiteDescriptorFactory(value) { return typeof value === 'function'; } exports.isSuiteDescriptorFactory = isSuiteDescriptorFactory; function createSuite(name, parent, descriptor, SuiteClass, TestClass) { var options = { name: name, parent: parent }; var tests; if (isObjectSuiteDescriptor(descriptor)) { var keys = Object.keys(descriptor).filter(function (key) { return key !== 'tests'; }); for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { var key = keys_1[_i]; var optionsKey = key; if (key === 'setup') { parent.executor.emit('deprecated', { original: 'Suite#setup', replacement: 'Suite#before' }); optionsKey = 'before'; } else if (key === 'teardown') { parent.executor.emit('deprecated', { original: 'Suite#teardown', replacement: 'Suite#after' }); optionsKey = 'after'; } options[optionsKey] = descriptor[key]; } tests = descriptor.tests; } else { tests = descriptor; } var suite = new SuiteClass(options); Object.keys(tests) .map(function (name) { if (name === 'before' || name === 'after' || name === 'setup' || name === 'teardown' || name === 'beforeEach' || name === 'afterEach') { parent.executor.log("Warning: created test with lifecycle method name \"" + name + "\""); } var thing = tests[name]; if (Test_1.isTestFunction(thing)) { return new TestClass({ name: name, test: thing, parent: suite }); } return createSuite(name, suite, tslib_1.__assign({}, thing), SuiteClass, TestClass); }) .forEach(function (suiteOrTest) { suite.add(suiteOrTest); }); return suite; } exports.createSuite = createSuite; function isObjectSuiteDescriptor(value) { return typeof value === 'object' && typeof value.tests === 'object'; } function _registerSuite(executor, name, descriptorOrFactory) { executor.addSuite(function (parent) { var descriptor; if (isSuiteDescriptorFactory(descriptorOrFactory)) { descriptor = descriptorOrFactory(); } else { descriptor = descriptorOrFactory; } parent.add(createSuite(name, parent, descriptor, Suite_1.default, Test_1.default)); }); } }); //# sourceMappingURL=object.js.map