UNPKG

cucumber

Version:

The official JavaScript implementation of Cucumber.

51 lines (33 loc) 3.6 kB
'use strict';Object.defineProperty(exports, "__esModule", { value: true });var _regenerator = require('babel-runtime/regenerator');var _regenerator2 = _interopRequireDefault(_regenerator);var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);var run = function () {var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark( function _callee(_ref2) {var defaultTimeout = _ref2.defaultTimeout;var scenarioResult = _ref2.scenarioResult;var step = _ref2.step;var stepDefinition = _ref2.stepDefinition;var transformLookup = _ref2.transformLookup;var world = _ref2.world;var parameters, timeoutInMilliseconds, attachmentManager, error, result, validCodeLengths, data, stepResultData;return _regenerator2.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0: beginTiming(); parameters = stepDefinition.getInvocationParameters({ scenarioResult: scenarioResult, step: step, transformLookup: transformLookup }); timeoutInMilliseconds = stepDefinition.options.timeout || defaultTimeout; attachmentManager = new _attachment_manager2.default(); world.attach = attachmentManager.create.bind(attachmentManager); error = void 0, result = void 0; validCodeLengths = stepDefinition.getValidCodeLengths(parameters);if (! _lodash2.default.includes(validCodeLengths, stepDefinition.code.length)) {_context.next = 15;break;}_context.next = 10;return ( _user_code_runner2.default.run({ argsArray: parameters, fn: stepDefinition.code, thisArg: world, timeoutInMilliseconds: timeoutInMilliseconds }));case 10:data = _context.sent; error = data.error; result = data.result;_context.next = 16;break;case 15: error = stepDefinition.getInvalidCodeLengthMessage(parameters);case 16: stepResultData = { attachments: attachmentManager.getAll(), duration: endTiming(), step: step, stepDefinition: stepDefinition }; if (result === 'pending') { stepResultData.status = _status2.default.PENDING; } else if (error) { stepResultData.failureException = error; stepResultData.status = _status2.default.FAILED; } else { stepResultData.status = _status2.default.PASSED; }return _context.abrupt('return', new _step_result2.default(stepResultData));case 19:case 'end':return _context.stop();}}}, _callee, this);}));return function run(_x) {return _ref.apply(this, arguments);};}();var _lodash = require('lodash');var _lodash2 = _interopRequireDefault(_lodash);var _attachment_manager = require('./attachment_manager');var _attachment_manager2 = _interopRequireDefault(_attachment_manager);var _status = require('../status');var _status2 = _interopRequireDefault(_status);var _step_result = require('../models/step_result');var _step_result2 = _interopRequireDefault(_step_result);var _time = require('../time');var _time2 = _interopRequireDefault(_time);var _user_code_runner = require('../user_code_runner');var _user_code_runner2 = _interopRequireDefault(_user_code_runner);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var beginTiming = _time2.default.beginTiming;var endTiming = _time2.default.endTiming;exports.default = { run: run };