@@ -40,12 +40,12 @@ describe('readLocalEnvFile', () => {
40
40
let backupSystemEnv = { } ;
41
41
42
42
const baseFlags = {
43
- cwd : '/tmp/project' ,
43
+ cwd : normalize ( '/tmp/project' ) ,
44
44
env : undefined ,
45
45
loadSystemEnv : false ,
46
46
} ;
47
47
48
- beforeEach ( ( ) => {
48
+ beforeAll ( ( ) => {
49
49
mockFs ( {
50
50
'/tmp/project' : {
51
51
'.env' : stripIndent `
@@ -63,29 +63,37 @@ describe('readLocalEnvFile', () => {
63
63
} ,
64
64
'/tmp/project-two' : {
65
65
'.env' : stripIndent `
66
- ACCOUNT_SID=ACyyyyyyy
67
- AUTH_TOKEN=123456789a
68
- TWILIO=https://www.twilio.com
66
+ ACCOUNT_SID=ACyyyyyyyyy
67
+ AUTH_TOKEN=a987654321
68
+ MY_PHONE_NUMBER=+99999
69
+ SECRET_API_KEY=ahoy
69
70
` ,
70
71
'.env.prod' : stripIndent `
71
72
ACCOUNT_SID=
72
73
AUTH_TOKEN=
73
- TWILIO=https://www.twilio.com
74
+ MY_PHONE_NUMBER=+444444444
75
+ SECRET_API_KEY=
74
76
` ,
75
77
} ,
76
78
} ) ;
79
+ } ) ;
80
+
81
+ beforeEach ( ( ) => {
77
82
backupSystemEnv = { ...process . env } ;
78
83
} ) ;
79
84
80
- afterEach ( ( ) => {
85
+ afterAll ( ( ) => {
81
86
mockFs . restore ( ) ;
87
+ } ) ;
88
+
89
+ afterEach ( ( ) => {
82
90
process . env = { ...backupSystemEnv } ;
83
91
} ) ;
84
92
85
93
it ( 'should throw an error if you use --load-system-env without --env' , async ( ) => {
86
94
const errorMessage = stripIndent `
87
95
If you are using --load-system-env you'll also have to supply a --env flag.
88
-
96
+
89
97
The .env file you are pointing at will be used to primarily load environment variables.
90
98
Any empty entries in the .env file will fall back to the system's environment variables.
91
99
` ;
@@ -95,8 +103,21 @@ describe('readLocalEnvFile', () => {
95
103
) . rejects . toEqual ( new Error ( errorMessage ) ) ;
96
104
} ) ;
97
105
106
+ it ( 'should throw an error if the specified file does not exist' , async ( ) => {
107
+ expect (
108
+ readLocalEnvFile ( { ...baseFlags , env : '/tmp/invalid-project/.env' } )
109
+ ) . rejects . toEqual (
110
+ new Error (
111
+ `Failed to find .env file at "${ path . resolve (
112
+ '/tmp/invalid-project/.env'
113
+ ) } "`
114
+ )
115
+ ) ;
116
+ } ) ;
117
+
98
118
it ( 'should load the default env variables' , async ( ) => {
99
- expect ( await readLocalEnvFile ( baseFlags ) ) . toEqual ( {
119
+ const result = await readLocalEnvFile ( baseFlags ) ;
120
+ expect ( result ) . toEqual ( {
100
121
localEnv : {
101
122
ACCOUNT_SID : 'ACxxxxxxx' ,
102
123
AUTH_TOKEN : '123456789f' ,
@@ -108,7 +129,8 @@ describe('readLocalEnvFile', () => {
108
129
} ) ;
109
130
110
131
it ( 'should load env variables from a different filename' , async ( ) => {
111
- expect ( await readLocalEnvFile ( { ...baseFlags , env : '.env.prod' } ) ) . toEqual ( {
132
+ const result = await readLocalEnvFile ( { ...baseFlags , env : '.env.prod' } ) ;
133
+ expect ( result ) . toEqual ( {
112
134
localEnv : {
113
135
ACCOUNT_SID : '' ,
114
136
AUTH_TOKEN : '' ,
@@ -120,30 +142,33 @@ describe('readLocalEnvFile', () => {
120
142
} ) ;
121
143
122
144
it ( 'should load the default env variables with different cwd' , async ( ) => {
123
- expect (
124
- await readLocalEnvFile ( { ...baseFlags , cwd : '/tmp/project-two' } )
125
- ) . toEqual ( {
145
+ const result = await readLocalEnvFile ( {
146
+ ...baseFlags ,
147
+ cwd : normalize ( '/tmp/project-two' ) ,
148
+ } ) ;
149
+ expect ( result ) . toEqual ( {
126
150
localEnv : {
127
- ACCOUNT_SID : 'ACyyyyyyy' ,
128
- AUTH_TOKEN : '123456789a' ,
129
- TWILIO : 'https://www.twilio.com' ,
151
+ ACCOUNT_SID : 'ACyyyyyyyyy' ,
152
+ AUTH_TOKEN : 'a987654321' ,
153
+ MY_PHONE_NUMBER : '+99999' ,
154
+ SECRET_API_KEY : 'ahoy' ,
130
155
} ,
131
156
envPath : normalize ( '/tmp/project-two/.env' ) ,
132
157
} ) ;
133
158
} ) ;
134
159
135
160
it ( 'should load env variables from a different filename & cwd' , async ( ) => {
136
- expect (
137
- await readLocalEnvFile ( {
138
- ...baseFlags ,
139
- cwd : '/tmp/project-two' ,
140
- env : '.env.prod' ,
141
- } )
142
- ) . toEqual ( {
161
+ const result = await readLocalEnvFile ( {
162
+ ...baseFlags ,
163
+ cwd : normalize ( '/tmp/project-two' ) ,
164
+ env : '.env.prod' ,
165
+ } ) ;
166
+ expect ( result ) . toEqual ( {
143
167
localEnv : {
144
168
ACCOUNT_SID : '' ,
145
169
AUTH_TOKEN : '' ,
146
- TWILIO : 'https://www.twilio.com' ,
170
+ MY_PHONE_NUMBER : '+444444444' ,
171
+ SECRET_API_KEY : '' ,
147
172
} ,
148
173
envPath : normalize ( '/tmp/project-two/.env.prod' ) ,
149
174
} ) ;
@@ -156,13 +181,12 @@ describe('readLocalEnvFile', () => {
156
181
SECRET_API_KEY : 'psst' ,
157
182
} ;
158
183
159
- expect (
160
- await readLocalEnvFile ( {
161
- ...baseFlags ,
162
- env : '.env.prod' ,
163
- loadSystemEnv : true ,
164
- } )
165
- ) . toEqual ( {
184
+ const result = await readLocalEnvFile ( {
185
+ ...baseFlags ,
186
+ env : '.env.prod' ,
187
+ loadSystemEnv : true ,
188
+ } ) ;
189
+ expect ( result ) . toEqual ( {
166
190
localEnv : {
167
191
ACCOUNT_SID : 'ACzzzzzzz' ,
168
192
AUTH_TOKEN : '' ,
0 commit comments