@@ -31,6 +31,10 @@ const envAtLoadTime: {[key: string]: string} = [
31
31
ENV_CONFIG_PATH ,
32
32
ENV_CREDENTIALS_PATH ,
33
33
ENV_PROFILE ,
34
+ 'HOME' ,
35
+ 'USERPROFILE' ,
36
+ 'HOMEPATH' ,
37
+ 'HOMEDRIVE' ,
34
38
] . reduce ( ( envState , varName ) => Object . assign (
35
39
envState ,
36
40
{ [ varName ] : process . env [ varName ] }
@@ -126,6 +130,102 @@ aws_session_token = ${FOO_CREDS.sessionToken}`.trim());
126
130
. toEqual ( DEFAULT_CREDS ) ;
127
131
}
128
132
) ;
133
+
134
+ it ( 'should use $HOME when available' , async ( ) => {
135
+ process . env . HOME = '/foo/bar' ;
136
+ __addMatcher (
137
+ / \/ f o o \/ b a r [ \/ \\ ] .a w s [ \/ \\ ] c r e d e n t i a l s / ,
138
+ SIMPLE_CREDS_FILE
139
+ ) ;
140
+
141
+ expect ( await fromIni ( ) ( ) ) . toEqual ( DEFAULT_CREDS ) ;
142
+ } ) ;
143
+
144
+ it ( 'should use $USERPROFILE when available' , async ( ) => {
145
+ process . env . USERPROFILE = 'C:\\Users\\user' ;
146
+ __addMatcher (
147
+ / C : \\ U s e r s \\ u s e r [ \/ \\ ] .a w s [ \/ \\ ] c r e d e n t i a l s / ,
148
+ SIMPLE_CREDS_FILE
149
+ ) ;
150
+
151
+ expect ( await fromIni ( ) ( ) ) . toEqual ( DEFAULT_CREDS ) ;
152
+ } ) ;
153
+
154
+ it ( 'should use $HOMEPATH/$HOMEDRIVE when available' , async ( ) => {
155
+ process . env . HOMEDRIVE = 'D:\\' ;
156
+ process . env . HOMEPATH = 'Users\\user' ;
157
+ __addMatcher (
158
+ / D : \\ U s e r s \\ u s e r [ \/ \\ ] .a w s [ \/ \\ ] c r e d e n t i a l s / ,
159
+ SIMPLE_CREDS_FILE
160
+ ) ;
161
+
162
+ expect ( await fromIni ( ) ( ) ) . toEqual ( DEFAULT_CREDS ) ;
163
+ } ) ;
164
+
165
+ it ( 'should prefer $HOME to $USERPROFILE' , async ( ) => {
166
+ process . env . HOME = '/foo/bar' ;
167
+ process . env . USERPROFILE = 'C:\\Users\\user' ;
168
+
169
+ __addMatcher ( / \/ f o o \/ b a r [ \/ \\ ] .a w s [ \/ \\ ] c r e d e n t i a l s / , `
170
+ [default]
171
+ aws_access_key_id = ${ DEFAULT_CREDS . accessKeyId }
172
+ aws_secret_access_key = ${ DEFAULT_CREDS . secretKey }
173
+ aws_session_token = ${ DEFAULT_CREDS . sessionToken } ` . trim ( )
174
+ ) ;
175
+
176
+ __addMatcher ( / C : \\ U s e r s \\ u s e r [ \/ \\ ] .a w s [ \/ \\ ] c r e d e n t i a l s / , `
177
+ [default]
178
+ aws_access_key_id = ${ FOO_CREDS . accessKeyId }
179
+ aws_secret_access_key = ${ FOO_CREDS . secretKey }
180
+ aws_session_token = ${ FOO_CREDS . sessionToken } ` . trim ( )
181
+ ) ;
182
+
183
+ expect ( await fromIni ( ) ( ) ) . toEqual ( DEFAULT_CREDS ) ;
184
+ } ) ;
185
+
186
+ it ( 'should prefer $USERPROFILE to $HOMEDRIVE+$HOMEPATH' , async ( ) => {
187
+ process . env . USERPROFILE = 'C:\\Users\\user' ;
188
+ process . env . HOMEDRIVE = 'D:\\' ;
189
+ process . env . HOMEPATH = 'Users\\user2' ;
190
+
191
+ __addMatcher ( / C : \\ U s e r s \\ u s e r [ \/ \\ ] .a w s [ \/ \\ ] c r e d e n t i a l s / , `
192
+ [default]
193
+ aws_access_key_id = ${ DEFAULT_CREDS . accessKeyId }
194
+ aws_secret_access_key = ${ DEFAULT_CREDS . secretKey }
195
+ aws_session_token = ${ DEFAULT_CREDS . sessionToken } ` . trim ( )
196
+ ) ;
197
+
198
+ __addMatcher ( / D : \\ U s e r s \\ u s e r 2 [ \/ \\ ] .a w s [ \/ \\ ] c r e d e n t i a l s / , `
199
+ [default]
200
+ aws_access_key_id = ${ FOO_CREDS . accessKeyId }
201
+ aws_secret_access_key = ${ FOO_CREDS . secretKey }
202
+ aws_session_token = ${ FOO_CREDS . sessionToken } ` . trim ( )
203
+ ) ;
204
+
205
+ expect ( await fromIni ( ) ( ) ) . toEqual ( DEFAULT_CREDS ) ;
206
+ } ) ;
207
+
208
+ it ( 'should prefer $HOME to $HOMEDRIVE+$HOMEPATH' , async ( ) => {
209
+ process . env . HOME = '/foo/bar' ;
210
+ process . env . HOMEDRIVE = 'D:\\' ;
211
+ process . env . HOMEPATH = 'Users\\user2' ;
212
+
213
+ __addMatcher ( / \/ f o o \/ b a r [ \/ \\ ] .a w s [ \/ \\ ] c r e d e n t i a l s / , `
214
+ [default]
215
+ aws_access_key_id = ${ DEFAULT_CREDS . accessKeyId }
216
+ aws_secret_access_key = ${ DEFAULT_CREDS . secretKey }
217
+ aws_session_token = ${ DEFAULT_CREDS . sessionToken } ` . trim ( )
218
+ ) ;
219
+
220
+ __addMatcher ( / D : \\ U s e r s \\ u s e r 2 [ \/ \\ ] .a w s [ \/ \\ ] c r e d e n t i a l s / , `
221
+ [default]
222
+ aws_access_key_id = ${ FOO_CREDS . accessKeyId }
223
+ aws_secret_access_key = ${ FOO_CREDS . secretKey }
224
+ aws_session_token = ${ FOO_CREDS . sessionToken } ` . trim ( )
225
+ ) ;
226
+
227
+ expect ( await fromIni ( ) ( ) ) . toEqual ( DEFAULT_CREDS ) ;
228
+ } ) ;
129
229
} ) ;
130
230
131
231
describe ( 'shared config file' , ( ) => {
@@ -203,6 +303,102 @@ aws_session_token = ${FOO_CREDS.sessionToken}`.trim());
203
303
. toEqual ( DEFAULT_CREDS ) ;
204
304
}
205
305
) ;
306
+
307
+ it ( 'should use $HOME when available' , async ( ) => {
308
+ process . env . HOME = '/foo/bar' ;
309
+ __addMatcher (
310
+ / \/ f o o \/ b a r [ \/ \\ ] .a w s [ \/ \\ ] c o n f i g / ,
311
+ SIMPLE_CONFIG_FILE
312
+ ) ;
313
+
314
+ expect ( await fromIni ( ) ( ) ) . toEqual ( DEFAULT_CREDS ) ;
315
+ } ) ;
316
+
317
+ it ( 'should use $USERPROFILE when available' , async ( ) => {
318
+ process . env . USERPROFILE = 'C:\\Users\\user' ;
319
+ __addMatcher (
320
+ / C : \\ U s e r s \\ u s e r [ \/ \\ ] .a w s [ \/ \\ ] c o n f i g / ,
321
+ SIMPLE_CONFIG_FILE
322
+ ) ;
323
+
324
+ expect ( await fromIni ( ) ( ) ) . toEqual ( DEFAULT_CREDS ) ;
325
+ } ) ;
326
+
327
+ it ( 'should use $HOMEPATH/$HOMEDRIVE when available' , async ( ) => {
328
+ process . env . HOMEDRIVE = 'D:\\' ;
329
+ process . env . HOMEPATH = 'Users\\user' ;
330
+ __addMatcher (
331
+ / D : \\ U s e r s \\ u s e r [ \/ \\ ] .a w s [ \/ \\ ] c o n f i g / ,
332
+ SIMPLE_CONFIG_FILE
333
+ ) ;
334
+
335
+ expect ( await fromIni ( ) ( ) ) . toEqual ( DEFAULT_CREDS ) ;
336
+ } ) ;
337
+
338
+ it ( 'should prefer $HOME to $USERPROFILE' , async ( ) => {
339
+ process . env . HOME = '/foo/bar' ;
340
+ process . env . USERPROFILE = 'C:\\Users\\user' ;
341
+
342
+ __addMatcher ( / \/ f o o \/ b a r [ \/ \\ ] .a w s [ \/ \\ ] c o n f i g / , `
343
+ [default]
344
+ aws_access_key_id = ${ DEFAULT_CREDS . accessKeyId }
345
+ aws_secret_access_key = ${ DEFAULT_CREDS . secretKey }
346
+ aws_session_token = ${ DEFAULT_CREDS . sessionToken } ` . trim ( )
347
+ ) ;
348
+
349
+ __addMatcher ( / C : \\ U s e r s \\ u s e r [ \/ \\ ] .a w s [ \/ \\ ] c o n f i g / , `
350
+ [default]
351
+ aws_access_key_id = ${ FOO_CREDS . accessKeyId }
352
+ aws_secret_access_key = ${ FOO_CREDS . secretKey }
353
+ aws_session_token = ${ FOO_CREDS . sessionToken } ` . trim ( )
354
+ ) ;
355
+
356
+ expect ( await fromIni ( ) ( ) ) . toEqual ( DEFAULT_CREDS ) ;
357
+ } ) ;
358
+
359
+ it ( 'should prefer $USERPROFILE to $HOMEDRIVE+$HOMEPATH' , async ( ) => {
360
+ process . env . USERPROFILE = 'C:\\Users\\user' ;
361
+ process . env . HOMEDRIVE = 'D:\\' ;
362
+ process . env . HOMEPATH = 'Users\\user2' ;
363
+
364
+ __addMatcher ( / C : \\ U s e r s \\ u s e r [ \/ \\ ] .a w s [ \/ \\ ] c o n f i g / , `
365
+ [default]
366
+ aws_access_key_id = ${ DEFAULT_CREDS . accessKeyId }
367
+ aws_secret_access_key = ${ DEFAULT_CREDS . secretKey }
368
+ aws_session_token = ${ DEFAULT_CREDS . sessionToken } ` . trim ( )
369
+ ) ;
370
+
371
+ __addMatcher ( / D : \\ U s e r s \\ u s e r 2 [ \/ \\ ] .a w s [ \/ \\ ] c o n f i g / , `
372
+ [default]
373
+ aws_access_key_id = ${ FOO_CREDS . accessKeyId }
374
+ aws_secret_access_key = ${ FOO_CREDS . secretKey }
375
+ aws_session_token = ${ FOO_CREDS . sessionToken } ` . trim ( )
376
+ ) ;
377
+
378
+ expect ( await fromIni ( ) ( ) ) . toEqual ( DEFAULT_CREDS ) ;
379
+ } ) ;
380
+
381
+ it ( 'should prefer $HOME to $HOMEDRIVE+$HOMEPATH' , async ( ) => {
382
+ process . env . HOME = '/foo/bar' ;
383
+ process . env . HOMEDRIVE = 'D:\\' ;
384
+ process . env . HOMEPATH = 'Users\\user2' ;
385
+
386
+ __addMatcher ( / \/ f o o \/ b a r [ \/ \\ ] .a w s [ \/ \\ ] c o n f i g / , `
387
+ [default]
388
+ aws_access_key_id = ${ DEFAULT_CREDS . accessKeyId }
389
+ aws_secret_access_key = ${ DEFAULT_CREDS . secretKey }
390
+ aws_session_token = ${ DEFAULT_CREDS . sessionToken } ` . trim ( )
391
+ ) ;
392
+
393
+ __addMatcher ( / D : \\ U s e r s \\ u s e r 2 [ \/ \\ ] .a w s [ \/ \\ ] c o n f i g / , `
394
+ [default]
395
+ aws_access_key_id = ${ FOO_CREDS . accessKeyId }
396
+ aws_secret_access_key = ${ FOO_CREDS . secretKey }
397
+ aws_session_token = ${ FOO_CREDS . sessionToken } ` . trim ( )
398
+ ) ;
399
+
400
+ expect ( await fromIni ( ) ( ) ) . toEqual ( DEFAULT_CREDS ) ;
401
+ } ) ;
206
402
} ) ;
207
403
208
404
describe ( 'assume role' , ( ) => {
0 commit comments