UNPKG

cucumber

Version:

The official JavaScript implementation of Cucumber.

45 lines (34 loc) 3.43 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 _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);var _createClass2 = require('babel-runtime/helpers/createClass');var _createClass3 = _interopRequireDefault(_createClass2);var _event_broadcaster = require('./event_broadcaster');var _event_broadcaster2 = _interopRequireDefault(_event_broadcaster); var _features_runner = require('./features_runner');var _features_runner2 = _interopRequireDefault(_features_runner); var _scenario_filter = require('../scenario_filter');var _scenario_filter2 = _interopRequireDefault(_scenario_filter); var _stack_trace_filter = require('./stack_trace_filter');var _stack_trace_filter2 = _interopRequireDefault(_stack_trace_filter);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var Runtime = function () { // options - {dryRun, failFast, filterStacktraces, strict} function Runtime(_ref) {var features = _ref.features;var listeners = _ref.listeners;var options = _ref.options;var scenarioFilter = _ref.scenarioFilter;var supportCodeLibrary = _ref.supportCodeLibrary;(0, _classCallCheck3.default)(this, Runtime); this.features = features || []; this.listeners = listeners || []; this.options = options || {}; this.scenarioFilter = scenarioFilter || new _scenario_filter2.default({}); this.supportCodeLibrary = supportCodeLibrary; this.stackTraceFilter = new _stack_trace_filter2.default(); }(0, _createClass3.default)(Runtime, [{ key: 'start', value: function () {var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {var eventBroadcaster, featuresRunner, result;return _regenerator2.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0: eventBroadcaster = new _event_broadcaster2.default({ listenerDefaultTimeout: this.supportCodeLibrary.defaultTimeout, listeners: this.listeners.concat(this.supportCodeLibrary.listeners) }); featuresRunner = new _features_runner2.default({ eventBroadcaster: eventBroadcaster, features: this.features, options: this.options, scenarioFilter: this.scenarioFilter, supportCodeLibrary: this.supportCodeLibrary }); if (this.options.filterStacktraces) { this.stackTraceFilter.filter(); }_context.next = 5;return ( featuresRunner.run());case 5:result = _context.sent; if (this.options.filterStacktraces) { this.stackTraceFilter.unfilter(); }return _context.abrupt('return', result);case 8:case 'end':return _context.stop();}}}, _callee, this);}));function start() {return _ref2.apply(this, arguments);}return start;}() }, { key: 'attachListener', value: function attachListener( listener) { this.listeners.push(listener); } }]);return Runtime;}();exports.default = Runtime;