hz-zhhq-web/node_modules/jest-jasmine2/build/tree_processor.js

136 lines
3.4 KiB
JavaScript

'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = treeProcessor;
function _asyncToGenerator(fn) {
return function() {
var gen = fn.apply(this, arguments);
return new Promise(function(resolve, reject) {
function step(key, arg) {
try {
var info = gen[key](arg);
var value = info.value;
} catch (error) {
reject(error);
return;
}
if (info.done) {
resolve(value);
} else {
return Promise.resolve(value).then(
function(value) {
step('next', value);
},
function(err) {
step('throw', err);
}
);
}
}
return step('next');
});
};
}
// Try getting the real promise object from the context, if available. Someone
// could have overridden it in a test. Async functions return it implicitly.
// eslint-disable-next-line no-unused-vars
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
*/
const Promise = global[Symbol.for('jest-native-promise')] || global.Promise;
function treeProcessor(options) {
const nodeComplete = options.nodeComplete,
nodeStart = options.nodeStart,
queueRunnerFactory = options.queueRunnerFactory,
runnableIds = options.runnableIds,
tree = options.tree;
function isEnabled(node, parentEnabled) {
return parentEnabled || runnableIds.indexOf(node.id) !== -1;
}
function getNodeHandler(node, parentEnabled) {
const enabled = isEnabled(node, parentEnabled);
return node.children
? getNodeWithChildrenHandler(node, enabled)
: getNodeWithoutChildrenHandler(node, enabled);
}
function getNodeWithoutChildrenHandler(node, enabled) {
return function fn() {
let done =
arguments.length > 0 && arguments[0] !== undefined
? arguments[0]
: () => {};
node.execute(done, enabled);
};
}
function getNodeWithChildrenHandler(node, enabled) {
return (() => {
var _ref = _asyncToGenerator(function*() {
let done =
arguments.length > 0 && arguments[0] !== undefined
? arguments[0]
: function() {};
nodeStart(node);
yield queueRunnerFactory({
onException: function(error) {
return node.onException(error);
},
queueableFns: wrapChildren(node, enabled),
userContext: node.sharedUserContext()
});
nodeComplete(node);
done();
});
function fn() {
return _ref.apply(this, arguments);
}
return fn;
})();
}
function hasEnabledTest(node) {
if (node.children) {
if (node.children.some(hasEnabledTest)) {
return true;
}
} else {
return !node.disabled;
}
return false;
}
function wrapChildren(node, enabled) {
if (!node.children) {
throw new Error('`node.children` is not defined.');
}
const children = node.children.map(child => ({
fn: getNodeHandler(child, enabled)
}));
if (!hasEnabledTest(node)) {
return children;
}
return node.beforeAllFns.concat(children).concat(node.afterAllFns);
}
const treeHandler = getNodeHandler(tree, false);
return treeHandler();
}