@@ -18,7 +18,7 @@ describe('tests', () => {
18
18
return res ;
19
19
}
20
20
21
- function getScript ( ) {
21
+ function getResponseData ( ) {
22
22
const res = getResponse ( ) ;
23
23
return res . end . mock . calls [ 0 ] . arguments [ 0 ] ;
24
24
}
@@ -48,7 +48,7 @@ describe('tests', () => {
48
48
await assert . doesNotReject ( main ) ;
49
49
assert . strictEqual ( listenMock . mock . calls [ 0 ] . arguments [ 0 ] , '8080' ) ; // Port
50
50
assert . strictEqual ( fs . readFile . mock . calls [ 0 ] . arguments [ 0 ] , '.env' ) ; // File
51
- assert . match ( getScript ( ) , / ^ c o n s t C O N F I G = \{ \n / ) ; // Variable & Window & Compress
51
+ assert . match ( getResponseData ( ) , / ^ c o n s t C O N F I G = \{ \n / ) ; // Variable & Window & Compress
52
52
} ) ;
53
53
54
54
it ( 'Serves with correct content type' , async ( ) => {
@@ -67,20 +67,20 @@ describe('tests', () => {
67
67
it ( 'Can do compression' , async ( ) => {
68
68
setArgs ( [ '-c' ] ) ;
69
69
await main ( ) ;
70
- assert . strictEqual ( getScript ( ) , `const CONFIG = {"FOO":"BAR"};` ) ;
70
+ assert . strictEqual ( getResponseData ( ) , `const CONFIG = {"FOO":"BAR"};` ) ;
71
71
} ) ;
72
72
73
73
it ( 'Can set as window' , async ( ) => {
74
74
setArgs ( [ '-w' ] ) ;
75
75
await main ( ) ;
76
- assert . match ( getScript ( ) , / ^ w i n d o w \. C O N F I G = \{ \n / ) ;
76
+ assert . match ( getResponseData ( ) , / ^ w i n d o w \. C O N F I G = \{ \n / ) ;
77
77
} ) ;
78
78
79
79
it ( 'Overrides with process values' , async ( ) => {
80
80
process . env . FOO = 'BAZ' ;
81
81
setArgs ( [ '-c' ] ) ;
82
82
await main ( ) ;
83
- assert . strictEqual ( getScript ( ) , `const CONFIG = {"FOO":"BAZ"};` ) ;
83
+ assert . strictEqual ( getResponseData ( ) , `const CONFIG = {"FOO":"BAZ"};` ) ;
84
84
} ) ;
85
85
86
86
it ( 'Throws if TBD values' , async ( ) => {
@@ -95,6 +95,37 @@ describe('tests', () => {
95
95
process . env . HI = 'HELLO' ;
96
96
setArgs ( [ '-c' ] ) ;
97
97
await main ( ) ;
98
- assert . strictEqual ( getScript ( ) , `const CONFIG = {"FOO":"BAR"};` ) ;
98
+ assert . strictEqual ( getResponseData ( ) , `const CONFIG = {"FOO":"BAR"};` ) ;
99
+ } ) ;
100
+
101
+ describe ( 'json mode' , ( ) => {
102
+ it ( 'Serves json' , async ( ) => {
103
+ setArgs ( [ '-j' , '-c' ] ) ;
104
+ await main ( ) ;
105
+ assert . strictEqual ( getResponseData ( ) , `{"FOO":"BAR"}` ) ;
106
+ } ) ;
107
+
108
+ it ( 'Serves with correct content type' , async ( ) => {
109
+ setArgs ( [ '-j' ] ) ;
110
+ await main ( ) ;
111
+ assert . strictEqual ( getResponse ( ) . setHeader . mock . calls [ 0 ] . arguments [ 0 ] , 'Content-Type' ) ;
112
+ assert . strictEqual ( getResponse ( ) . setHeader . mock . calls [ 0 ] . arguments [ 1 ] , 'application/json' ) ;
113
+ } ) ;
114
+
115
+ it ( 'Throws when --window' , async ( ) => {
116
+ setArgs ( [ '-j' , '-w' ] ) ;
117
+ await assert . rejects ( main , {
118
+ name : 'Error' ,
119
+ message : `Cannot use --json with --window or --variable` ,
120
+ } ) ;
121
+ } ) ;
122
+
123
+ it ( 'Throws when --variable' , async ( ) => {
124
+ setArgs ( [ '-j' , '-v' , 'key' ] ) ;
125
+ await assert . rejects ( main , {
126
+ name : 'Error' ,
127
+ message : `Cannot use --json with --window or --variable` ,
128
+ } ) ;
129
+ } ) ;
99
130
} ) ;
100
131
} ) ;
0 commit comments