@@ -10,13 +10,13 @@ const mockPkg = json => {
10
10
fs . writeFileSync ( '/package.json' , JSON . stringify ( json , null , 2 ) )
11
11
}
12
12
13
- const createMockService = ( plugins = [ ] , init = true ) => {
13
+ const createMockService = ( plugins = [ ] , init = true , mode ) => {
14
14
const service = new Service ( '/' , {
15
15
plugins,
16
16
useBuiltIn : false
17
17
} )
18
18
if ( init ) {
19
- service . init ( )
19
+ service . init ( mode )
20
20
}
21
21
return service
22
22
}
@@ -30,9 +30,33 @@ test('env loading', () => {
30
30
fs . writeFileSync ( '/.env.local' , `FOO=1\nBAR=2` )
31
31
fs . writeFileSync ( '/.env' , `BAR=3\nBAZ=4` )
32
32
createMockService ( )
33
+
33
34
expect ( process . env . FOO ) . toBe ( '0' )
34
35
expect ( process . env . BAR ) . toBe ( '2' )
35
36
expect ( process . env . BAZ ) . toBe ( '4' )
37
+
38
+ delete process . env . FOO
39
+ delete process . env . BAR
40
+ delete process . env . BAZ
41
+ fs . unlinkSync ( '/.env.local' )
42
+ fs . unlinkSync ( '/.env' )
43
+ } )
44
+
45
+ test ( 'env loading for custom mode' , ( ) => {
46
+ const prevNodeEnv = process . env . NODE_ENV
47
+ delete process . env . NODE_ENV
48
+
49
+ fs . writeFileSync ( '/.env' , 'FOO=1' )
50
+ fs . writeFileSync ( '/.env.staging' , 'FOO=2\nNODE_ENV=production' )
51
+ createMockService ( [ ] , true , 'staging' )
52
+
53
+ expect ( process . env . FOO ) . toBe ( '2' )
54
+ expect ( process . env . NODE_ENV ) . toBe ( 'production' )
55
+
56
+ delete process . env . FOO
57
+ process . env . NODE_ENV = prevNodeEnv
58
+ fs . unlinkSync ( '/.env' )
59
+ fs . unlinkSync ( '/.env.staging' )
36
60
} )
37
61
38
62
test ( 'loading plugins from package.json' , ( ) => {
0 commit comments