cucumber
Version:
The official JavaScript implementation of Cucumber.
45 lines (34 loc) • 3.43 kB
JavaScript
;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;