11var fs = require ( 'fs' )
2+ var mockFs = require ( 'mock-fs' )
23var codecov = require ( '../lib/codecov' )
34
45var isWindows =
@@ -29,6 +30,7 @@ describe('Codecov', function() {
2930 expect ( codecov . upload ( { options : { dump : true } } ) . query . token ) . to . eql (
3031 'ABC123'
3132 )
33+ delete process . env . CODECOV_TOKEN
3234 } )
3335
3436 it ( 'can get a token passed in cli' , function ( ) {
@@ -37,6 +39,69 @@ describe('Codecov', function() {
3739 ) . to . eql ( 'qwerty' )
3840 } )
3941
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+
40105 it ( 'can auto detect reports' , function ( ) {
41106 var res = codecov . upload ( { options : { dump : true } } )
42107 expect ( res . files [ 0 ] . split ( pathSeparator ) . pop ( ) ) . to . eql (
@@ -125,6 +190,7 @@ describe('Codecov', function() {
125190 var res = codecov . upload ( { options : { dump : true , env : 'HELLO,VAR1' } } )
126191 expect ( res . body ) . to . contain ( 'HELLO=world\n' )
127192 expect ( res . body ) . to . contain ( 'VAR1=\n' )
193+ delete process . env . HELLO
128194 } )
129195
130196 it ( 'can include env in env' , function ( ) {
@@ -134,6 +200,8 @@ describe('Codecov', function() {
134200 expect ( res . body ) . to . contain ( 'HELLO=world\n' )
135201 expect ( res . body ) . to . contain ( 'VAR1=\n' )
136202 expect ( res . body ) . to . contain ( 'VAR2=\n' )
203+ delete process . env . HELLO
204+ delete process . env . CODECOV_ENV
137205 } )
138206
139207 it ( 'can have custom args for gcov' , function ( ) {
@@ -163,33 +231,40 @@ describe('Codecov', function() {
163231 } )
164232
165233 it ( 'Should use codecov.yml via env variable' , function ( ) {
234+ var CWD = process . cwd ( )
166235 expect (
167236 codecov . upload ( { options : { dump : true , disable : 'detect' } } ) . query . yaml
168- ) . to . eql ( ' codecov.yml')
237+ ) . to . eql ( CWD + '/ codecov.yml')
169238
170- fs . writeFileSync ( 'foo.yml' , '' )
239+ mockFs ( {
240+ 'foo.yml' : '' ,
241+ } )
171242 process . env . codecov_yml = 'foo.yml'
172243 expect (
173244 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 ( )
176247 delete process . env . codecov_yml
177248
178- fs . writeFileSync ( 'FOO.yml' , '' )
249+ mockFs ( {
250+ 'FOO.yml' : '' ,
251+ } )
179252 process . env . CODECOV_YML = 'FOO.yml'
180253 expect (
181254 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 ( )
184257 delete process . env . CODECOV_YML
185258 } )
186259
187260 it ( 'can get config from cli args' , function ( ) {
188- fs . writeFileSync ( 'foo.yml' , '' )
261+ mockFs ( {
262+ 'foo.yml' : '' ,
263+ } )
189264 var res = codecov . upload ( {
190265 options : { dump : true , yml : 'foo.yml' , disable : 'detect' } ,
191266 } )
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 ( )
194269 } )
195270} )
0 commit comments