cucumber
Version:
The official JavaScript implementation of Cucumber.
51 lines (43 loc) • 1.68 kB
JavaScript
var Configuration = function(argv) {
var Cucumber = require('../../cucumber');
var argumentParser = Cucumber.Cli.ArgumentParser();
argumentParser.parse(argv);
var self = {
getFeatureSources: function getFeatureSources() {
var featureFilePaths = argumentParser.getFeatureFilePaths();
var featureSourceLoader = Cucumber.Cli.FeatureSourceLoader(featureFilePaths);
var featureSources = featureSourceLoader.getSources();
return featureSources;
},
getAstFilter: function getAstFilter() {
var tagRules = self.getTagAstFilterRules();
var astFilter = Cucumber.Ast.Filter(tagRules);
return astFilter;
},
getSupportCodeLibrary: function getSupportCodeLibrary() {
var supportCodeFilePaths = argumentParser.getSupportCodeFilePaths();
var supportCodeLoader = Cucumber.Cli.SupportCodeLoader(supportCodeFilePaths);
var supportCodeLibrary = supportCodeLoader.getSupportCodeLibrary();
return supportCodeLibrary;
},
getTagAstFilterRules: function getTagAstFilterRules() {
var tagGroups = argumentParser.getTagGroups();
var rules = [];
tagGroups.forEach(function(tags) {
var rule = Cucumber.Ast.Filter.AnyOfTagsRule(tags);
rules.push(rule);
});
return rules;
},
isHelpRequested: function isHelpRequested() {
var isHelpRequested = argumentParser.isHelpRequested();
return isHelpRequested;
},
isVersionRequested: function isVersionRequested() {
var isVersionRequested = argumentParser.isVersionRequested();
return isVersionRequested;
}
};
return self;
};
module.exports = Configuration;