Skip to content

Commit

Permalink
Add argument parser specs for --coffee option
Browse files Browse the repository at this point in the history
  • Loading branch information
jbpros committed Dec 25, 2012
1 parent 38f5600 commit 5ff71bb
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 28 deletions.
2 changes: 1 addition & 1 deletion lib/cucumber/cli.js
Expand Up @@ -65,7 +65,7 @@ var Cli = function(argv) {
summary : prints a summary only, after all\n\
scenarios were executed\n\
\n\
--coffee Display step definitions in CoffeeScript.\n\
--coffee Display step definitions snippets in CoffeeScript.\n\
\n\
-v, --version Display Cucumber.js's version.\n\
\n\
Expand Down
54 changes: 27 additions & 27 deletions lib/cucumber/cli/argument_parser.js
Expand Up @@ -64,12 +64,12 @@ var ArgumentParser = function(argv) {

getKnownOptionDefinitions: function getKnownOptionDefinitions() {
var definitions = {};
definitions[ArgumentParser.REQUIRE_OPTION_NAME] = [path, Array];
definitions[ArgumentParser.TAGS_OPTION_NAME] = [String, Array];
definitions[ArgumentParser.FORMAT_OPTION_NAME] = String;
definitions[ArgumentParser.HELP_FLAG_NAME] = Boolean;
definitions[ArgumentParser.VERSION_FLAG_NAME] = Boolean;
definitions[ArgumentParser.COFFEE_SNIPPETS] = Boolean;
definitions[ArgumentParser.REQUIRE_OPTION_NAME] = [path, Array];
definitions[ArgumentParser.TAGS_OPTION_NAME] = [String, Array];
definitions[ArgumentParser.FORMAT_OPTION_NAME] = String;
definitions[ArgumentParser.HELP_FLAG_NAME] = Boolean;
definitions[ArgumentParser.VERSION_FLAG_NAME] = Boolean;
definitions[ArgumentParser.COFFEE_SCRIPT_SNIPPETS_FLAG_NAME] = Boolean;
return definitions;
},

Expand All @@ -91,9 +91,9 @@ var ArgumentParser = function(argv) {
return isVersionRequested;
},

shouldSnippetsBeInCoffee: function shouldSnippetsBeInCoffee() {
var coffeeDisplay = self.getOptionOrDefault(ArgumentParser.COFFEE_SNIPPETS, ArgumentParser.DEFAULT_COFFEE_SNIPPETS);
return coffeeDisplay;
shouldSnippetsBeInCoffeeScript: function shouldSnippetsBeInCoffeeScript() {
var areSnippetsInCoffeeScript = self.getOptionOrDefault(ArgumentParser.COFFEE_SCRIPT_SNIPPETS_FLAG_NAME, ArgumentParser.DEFAULT_COFFEE_SCRIPT_SNIPPETS_FLAG_VALUE);
return areSnippetsInCoffeeScript;
},

storeOptions: function storeOptions(newOptions) {
Expand All @@ -112,24 +112,24 @@ var ArgumentParser = function(argv) {
};
return self;
};
ArgumentParser.NUMBER_OF_LEADING_ARGS_TO_SLICE = 2;
ArgumentParser.DEFAULT_FEATURES_DIRECTORY = "features";
ArgumentParser.FEATURE_FILENAME_REGEXP = /[\/\\][^\/\\]+\.feature$/i;
ArgumentParser.LONG_OPTION_PREFIX = "--";
ArgumentParser.REQUIRE_OPTION_NAME = "require";
ArgumentParser.REQUIRE_OPTION_SHORT_NAME = "r";
ArgumentParser.FORMAT_OPTION_NAME = "format";
ArgumentParser.FORMAT_OPTION_SHORT_NAME = "f";
ArgumentParser.DEFAULT_FORMAT_VALUE = "progress";
ArgumentParser.TAGS_OPTION_NAME = "tags";
ArgumentParser.TAGS_OPTION_SHORT_NAME = "t";
ArgumentParser.HELP_FLAG_NAME = "help";
ArgumentParser.HELP_FLAG_SHORT_NAME = "h";
ArgumentParser.DEFAULT_HELP_FLAG_VALUE = false;
ArgumentParser.VERSION_FLAG_NAME = "version";
ArgumentParser.DEFAULT_VERSION_FLAG_VALUE = false;
ArgumentParser.COFFEE_SNIPPETS = "coffee";
ArgumentParser.DEFAULT_COFFEE_SNIPPETS = false;
ArgumentParser.NUMBER_OF_LEADING_ARGS_TO_SLICE = 2;
ArgumentParser.DEFAULT_FEATURES_DIRECTORY = "features";
ArgumentParser.FEATURE_FILENAME_REGEXP = /[\/\\][^\/\\]+\.feature$/i;
ArgumentParser.LONG_OPTION_PREFIX = "--";
ArgumentParser.REQUIRE_OPTION_NAME = "require";
ArgumentParser.REQUIRE_OPTION_SHORT_NAME = "r";
ArgumentParser.FORMAT_OPTION_NAME = "format";
ArgumentParser.FORMAT_OPTION_SHORT_NAME = "f";
ArgumentParser.DEFAULT_FORMAT_VALUE = "progress";
ArgumentParser.TAGS_OPTION_NAME = "tags";
ArgumentParser.TAGS_OPTION_SHORT_NAME = "t";
ArgumentParser.HELP_FLAG_NAME = "help";
ArgumentParser.HELP_FLAG_SHORT_NAME = "h";
ArgumentParser.DEFAULT_HELP_FLAG_VALUE = false;
ArgumentParser.VERSION_FLAG_NAME = "version";
ArgumentParser.DEFAULT_VERSION_FLAG_VALUE = false;
ArgumentParser.COFFEE_SCRIPT_SNIPPETS_FLAG_NAME = "coffee";
ArgumentParser.DEFAULT_COFFEE_SCRIPT_SNIPPETS_FLAG_VALUE = false;
ArgumentParser.FeaturePathExpander = require('./argument_parser/feature_path_expander');
ArgumentParser.PathExpander = require('./argument_parser/path_expander');
ArgumentParser.SupportCodePathExpander = require('./argument_parser/support_code_path_expander');
Expand Down
18 changes: 18 additions & 0 deletions spec/cucumber/cli/argument_parser_spec.js
Expand Up @@ -339,6 +339,24 @@ describe("Cucumber.Cli.ArgumentParser", function () {
});
});

describe("shouldSnippetsBeInCoffeeScript()", function () {
var shouldSnippetsBeInCoffeeScript;

beforeEach(function () {
shouldSnippetsBeInCoffeeScript = createSpy("should snippets be in coffee script?");
spyOn(argumentParser, 'getOptionOrDefault').andReturn(shouldSnippetsBeInCoffeeScript);
});

it("gets the 'coffee' flag with a falsy default value", function () {
argumentParser.shouldSnippetsBeInCoffeeScript();
expect(argumentParser.getOptionOrDefault).toHaveBeenCalledWith("coffee", false);
});

it("returns the flag value", function () {
expect(argumentParser.shouldSnippetsBeInCoffeeScript()).toBe(shouldSnippetsBeInCoffeeScript);
});
});

describe("getOptions() [storeOptions()]", function () {
var options;

Expand Down

0 comments on commit 5ff71bb

Please sign in to comment.