Skip to content

Commit 30aafd2

Browse files
committed
Adds proper tests
1 parent ab425d8 commit 30aafd2

File tree

3 files changed

+68
-2
lines changed

3 files changed

+68
-2
lines changed

spec/CLI.spec.js

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
var commander = require("../src/cli/utils/commander");
2+
3+
var definitions = {
4+
"arg0": "PROGRAM_ARG_0",
5+
"arg1": {
6+
env: "PROGRAM_ARG_1",
7+
required: true
8+
},
9+
"arg2": {
10+
env: "PROGRAM_ARG_2",
11+
action: function(value) {
12+
return parseInt(value);
13+
}
14+
},
15+
"arg3": {}
16+
}
17+
18+
describe("commander additions", () => {
19+
20+
afterEach((done) => {
21+
commander.options = [];
22+
delete commander.arg0;
23+
delete commander.arg1;
24+
delete commander.arg2;
25+
delete commander.arg3;
26+
done();
27+
})
28+
29+
it("should load properly definitions from args", (done) => {
30+
commander.loadDefinitions(definitions);
31+
commander.parse(["node","./CLI.spec.js","--arg0", "arg0Value", "--arg1", "arg1Value", "--arg2", "2", "--arg3", "some"]);
32+
expect(commander.arg0).toEqual("arg0Value");
33+
expect(commander.arg1).toEqual("arg1Value");
34+
expect(commander.arg2).toEqual(2);
35+
expect(commander.arg3).toEqual("some");
36+
done();
37+
});
38+
39+
it("should load properly definitions from env", (done) => {
40+
commander.loadDefinitions(definitions);
41+
commander.parse([], {
42+
"PROGRAM_ARG_0": "arg0ENVValue",
43+
"PROGRAM_ARG_1": "arg1ENVValue",
44+
"PROGRAM_ARG_2": "3",
45+
});
46+
expect(commander.arg0).toEqual("arg0ENVValue");
47+
expect(commander.arg1).toEqual("arg1ENVValue");
48+
expect(commander.arg2).toEqual(3);
49+
done();
50+
});
51+
52+
it("should load properly use args over env", (done) => {
53+
commander.loadDefinitions(definitions);
54+
commander.parse(["node","./CLI.spec.js","--arg0", "arg0Value"], {
55+
"PROGRAM_ARG_0": "arg0ENVValue",
56+
"PROGRAM_ARG_1": "arg1ENVValue",
57+
"PROGRAM_ARG_2": "4",
58+
});
59+
expect(commander.arg0).toEqual("arg0Value");
60+
expect(commander.arg1).toEqual("arg1ENVValue");
61+
expect(commander.arg2).toEqual(4);
62+
done();
63+
});
64+
65+
})

src/cli/cli-definitions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,4 @@ module.exports = {
8989
env: "PARSE_SERVER_LOGGER_ADAPTER",
9090
help: "Adapter module for the logging sub-system"
9191
}
92-
};
92+
};

src/cli/utils/commander.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ var program = require('commander');
33
var _definitions;
44
var _reverseDefinitions;
55

6-
program.loadDefinitions = function(definitions, prefix = "") {
6+
program.loadDefinitions = function(definitions) {
77
_definitions = definitions;
88
Object.keys(definitions).reduce(function(program, opt){
99
if (typeof definitions[opt] == "object") {
@@ -28,6 +28,7 @@ program.loadDefinitions = function(definitions, prefix = "") {
2828
return object;
2929
}, {});
3030

31+
/* istanbul ignore next */
3132
program.on('--help', function(){
3233
console.log(' Configure From Environment:');
3334
console.log('');

0 commit comments

Comments
 (0)