UNPKG

cucumber

Version:

The official JavaScript implementation of Cucumber.

43 lines (37 loc) 1.7 kB
var Runtime = function(configuration) { var Cucumber = require('../cucumber'); var listeners = Cucumber.Type.Collection(); var self = { start: function start(callback) { if (typeof(callback) !== 'function') throw new Error(Runtime.START_MISSING_CALLBACK_ERROR); var features = self.getFeatures(); var supportCodeLibrary = self.getSupportCodeLibrary(); var astTreeWalker = Runtime.AstTreeWalker(features, supportCodeLibrary, listeners); astTreeWalker.walk(callback); }, attachListener: function attachListener(listener) { listeners.add(listener); }, getFeatures: function getFeatures() { var featureSources = configuration.getFeatureSources(); var astFilter = configuration.getAstFilter(); var parser = Cucumber.Parser(featureSources, astFilter); var features = parser.parse(); return features; }, getSupportCodeLibrary: function getSupportCodeLibrary() { var supportCodeLibrary = configuration.getSupportCodeLibrary(); return supportCodeLibrary; } }; return self; }; Runtime.START_MISSING_CALLBACK_ERROR = "Cucumber.Runtime.start() expects a callback"; Runtime.AstTreeWalker = require('./runtime/ast_tree_walker'); Runtime.SuccessfulStepResult = require('./runtime/successful_step_result'); Runtime.PendingStepResult = require('./runtime/pending_step_result'); Runtime.FailedStepResult = require('./runtime/failed_step_result'); Runtime.SkippedStepResult = require('./runtime/skipped_step_result'); Runtime.UndefinedStepResult = require('./runtime/undefined_step_result'); module.exports = Runtime;