123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
- exports.default = void 0;
-
- function _jestUtil() {
- const data = require('jest-util');
-
- _jestUtil = function () {
- return data;
- };
-
- return data;
- }
-
- var _array = _interopRequireDefault(require('./table/array'));
-
- var _template = _interopRequireDefault(require('./table/template'));
-
- var _validation = require('./validation');
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {default: obj};
- }
-
- /**
- * Copyright (c) Facebook, Inc. and its affiliates. 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.
- *
- */
- var _default =
- (cb, supportsDone = true) =>
- (table, ...taggedTemplateData) =>
- function eachBind(title, test, timeout) {
- try {
- const tests = isArrayTable(taggedTemplateData)
- ? buildArrayTests(title, table)
- : buildTemplateTests(title, table, taggedTemplateData);
- return tests.forEach(row =>
- cb(
- row.title,
- applyArguments(supportsDone, row.arguments, test),
- timeout
- )
- );
- } catch (e) {
- const error = new (_jestUtil().ErrorWithStack)(e.message, eachBind);
- return cb(title, () => {
- throw error;
- });
- }
- };
-
- exports.default = _default;
-
- const isArrayTable = data => data.length === 0;
-
- const buildArrayTests = (title, table) => {
- (0, _validation.validateArrayTable)(table);
- return (0, _array.default)(title, table);
- };
-
- const buildTemplateTests = (title, table, taggedTemplateData) => {
- const headings = getHeadingKeys(table[0]);
- (0, _validation.validateTemplateTableArguments)(headings, taggedTemplateData);
- return (0, _template.default)(title, headings, taggedTemplateData);
- };
-
- const getHeadingKeys = headings =>
- (0, _validation.extractValidTemplateHeadings)(headings)
- .replace(/\s/g, '')
- .split('|');
-
- const applyArguments = (supportsDone, params, test) =>
- supportsDone && params.length < test.length
- ? done => test(...params, done)
- : () => test(...params);
|