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
+ } )
0 commit comments