1
1
var fs = require ( 'fs' )
2
+ var mockFs = require ( 'mock-fs' )
2
3
var codecov = require ( '../lib/codecov' )
3
4
4
5
var isWindows =
@@ -29,6 +30,7 @@ describe('Codecov', function() {
29
30
expect ( codecov . upload ( { options : { dump : true } } ) . query . token ) . to . eql (
30
31
'ABC123'
31
32
)
33
+ delete process . env . CODECOV_TOKEN
32
34
} )
33
35
34
36
it ( 'can get a token passed in cli' , function ( ) {
@@ -37,6 +39,69 @@ describe('Codecov', function() {
37
39
) . to . eql ( 'qwerty' )
38
40
} )
39
41
42
+ it ( 'can read a codecov.yml file' , function ( ) {
43
+ mockFs ( {
44
+ 'codecov.yml' : 'codecov:\n token: fake-token' ,
45
+ } )
46
+ expect ( codecov . upload ( { options : { dump : true } } ) . query . token ) . to . eql (
47
+ 'fake-token'
48
+ )
49
+ mockFs . restore ( )
50
+ } )
51
+ it ( 'can read a .codecov.yml file' , function ( ) {
52
+ mockFs ( {
53
+ '.codecov.yml' : 'codecov:\n token: fake-token-dotfile' ,
54
+ } )
55
+ expect ( codecov . upload ( { options : { dump : true } } ) . query . token ) . to . eql (
56
+ 'fake-token-dotfile'
57
+ )
58
+ mockFs . restore ( )
59
+ } )
60
+ it ( 'should have no token if yaml file does not supplied' , function ( ) {
61
+ mockFs ( {
62
+ '.codecov.yml' : 'codecov:\n noconfig: true' ,
63
+ } )
64
+ expect ( codecov . upload ( { options : { dump : true } } ) . query . token ) . to . eql (
65
+ undefined
66
+ )
67
+ mockFs . restore ( )
68
+ } )
69
+
70
+ it ( 'token precedence should be respected' , function ( ) {
71
+ // options.token || .codecov.yml/codecov.yml file || codecov_token || CODECOV_TOKEN
72
+ mockFs ( {
73
+ '.codecov.yml' : 'codecov:\n token: fake-token-dotfile' ,
74
+ } )
75
+ var upload = codecov . upload ( { options : { dump : true , token : 'qwerty' } } )
76
+ expect ( upload . query . token ) . to . eql ( 'qwerty' )
77
+ mockFs . restore ( )
78
+
79
+ process . env . codecov_token = 'abc123'
80
+ upload = codecov . upload ( { options : { dump : true , token : 'qwerty2' } } )
81
+ expect ( upload . query . token ) . to . eql ( 'qwerty2' )
82
+ delete process . env . codecov_token
83
+
84
+ process . env . CODECOV_TOKEN = 'ABC123'
85
+ upload = codecov . upload ( { options : { dump : true , token : 'qwerty3' } } )
86
+ expect ( upload . query . token ) . to . eql ( 'qwerty3' )
87
+ delete process . env . CODECOV_TOKEN
88
+
89
+ mockFs ( {
90
+ '.codecov.yml' : 'codecov:\n token: fake-token-dotfile' ,
91
+ } )
92
+ process . env . codecov_token = 'abc123'
93
+ upload = codecov . upload ( { options : { dump : true } } )
94
+ expect ( upload . query . token ) . to . eql ( 'fake-token-dotfile' )
95
+ mockFs . restore ( )
96
+
97
+ process . env . codecov_token = 'abc123'
98
+ process . env . CODECOV_TOKEN = 'ABC123'
99
+ upload = codecov . upload ( { options : { dump : true } } )
100
+ expect ( upload . query . token ) . to . eql ( 'abc123' )
101
+ delete process . env . codecov_token
102
+ delete process . env . CODECOV_TOKEN
103
+ } )
104
+
40
105
it ( 'can auto detect reports' , function ( ) {
41
106
var res = codecov . upload ( { options : { dump : true } } )
42
107
expect ( res . files [ 0 ] . split ( pathSeparator ) . pop ( ) ) . to . eql (
@@ -125,6 +190,7 @@ describe('Codecov', function() {
125
190
var res = codecov . upload ( { options : { dump : true , env : 'HELLO,VAR1' } } )
126
191
expect ( res . body ) . to . contain ( 'HELLO=world\n' )
127
192
expect ( res . body ) . to . contain ( 'VAR1=\n' )
193
+ delete process . env . HELLO
128
194
} )
129
195
130
196
it ( 'can include env in env' , function ( ) {
@@ -134,6 +200,8 @@ describe('Codecov', function() {
134
200
expect ( res . body ) . to . contain ( 'HELLO=world\n' )
135
201
expect ( res . body ) . to . contain ( 'VAR1=\n' )
136
202
expect ( res . body ) . to . contain ( 'VAR2=\n' )
203
+ delete process . env . HELLO
204
+ delete process . env . CODECOV_ENV
137
205
} )
138
206
139
207
it ( 'can have custom args for gcov' , function ( ) {
@@ -163,33 +231,40 @@ describe('Codecov', function() {
163
231
} )
164
232
165
233
it ( 'Should use codecov.yml via env variable' , function ( ) {
234
+ var CWD = process . cwd ( )
166
235
expect (
167
236
codecov . upload ( { options : { dump : true , disable : 'detect' } } ) . query . yaml
168
- ) . to . eql ( ' codecov.yml')
237
+ ) . to . eql ( CWD + '/ codecov.yml')
169
238
170
- fs . writeFileSync ( 'foo.yml' , '' )
239
+ mockFs ( {
240
+ 'foo.yml' : '' ,
241
+ } )
171
242
process . env . codecov_yml = 'foo.yml'
172
243
expect (
173
244
codecov . upload ( { options : { dump : true , disable : 'detect' } } ) . query . yaml
174
- ) . to . eql ( ' foo.yml')
175
- fs . unlinkSync ( 'foo.yml' )
245
+ ) . to . eql ( CWD + '/ foo.yml')
246
+ mockFs . restore ( )
176
247
delete process . env . codecov_yml
177
248
178
- fs . writeFileSync ( 'FOO.yml' , '' )
249
+ mockFs ( {
250
+ 'FOO.yml' : '' ,
251
+ } )
179
252
process . env . CODECOV_YML = 'FOO.yml'
180
253
expect (
181
254
codecov . upload ( { options : { dump : true , disable : 'detect' } } ) . query . yaml
182
- ) . to . eql ( ' FOO.yml')
183
- fs . unlinkSync ( 'FOO.yml' )
255
+ ) . to . eql ( CWD + '/ FOO.yml')
256
+ mockFs . restore ( )
184
257
delete process . env . CODECOV_YML
185
258
} )
186
259
187
260
it ( 'can get config from cli args' , function ( ) {
188
- fs . writeFileSync ( 'foo.yml' , '' )
261
+ mockFs ( {
262
+ 'foo.yml' : '' ,
263
+ } )
189
264
var res = codecov . upload ( {
190
265
options : { dump : true , yml : 'foo.yml' , disable : 'detect' } ,
191
266
} )
192
- expect ( res . query . yaml ) . to . eql ( ' foo.yml')
193
- fs . unlinkSync ( 'foo.yml' )
267
+ expect ( res . query . yaml ) . to . eql ( process . cwd ( ) + '/ foo.yml')
268
+ mockFs . restore ( )
194
269
} )
195
270
} )
0 commit comments