@@ -202,7 +202,7 @@ func TestNerdctlCommand_run(t *testing.T) {
202
202
ncsd .EXPECT ().FilePathToSlash (augmentedPath ).Return (wslPath )
203
203
204
204
lcc .EXPECT ().Create ("shell" , "--workdir" , wslPath , limaInstanceName , "sudo" , "-E" , nerdctlCmdName , "container" , "run" ,
205
- "-e " , "ARG1=val1 " , "--rm " , "alpine:latest" , "env" ).Return (c )
205
+ "--rm " , "-e " , "ARG1=val1 " , "alpine:latest" , "env" ).Return (c )
206
206
c .EXPECT ().Run ()
207
207
},
208
208
},
@@ -239,7 +239,45 @@ func TestNerdctlCommand_run(t *testing.T) {
239
239
ncsd .EXPECT ().FilePathToSlash (augmentedPath ).Return (wslPath )
240
240
// alias substitution run=>container run
241
241
lcc .EXPECT ().Create ("shell" , "--workdir" , wslPath , limaInstanceName , "sudo" , "-E" , nerdctlCmdName , "container" , "run" ,
242
- "-e" , "ARG3=val3" , "--rm" , "alpine:latest" , "env" ).Return (c )
242
+ "--rm" , "-e" , "ARG3=val3" , "alpine:latest" , "env" ).Return (c )
243
+ c .EXPECT ().Run ()
244
+ },
245
+ },
246
+ {
247
+ name : "with environment flags parsing and env value exists and with --debug flag" ,
248
+ cmdName : "run" ,
249
+ fc : & config.Finch {},
250
+ args : []string {"--debug" , "--rm" , "--env=ARG2" , "-eARG3" , "alpine:latest" , "env" },
251
+ wantErr : nil ,
252
+ mockSvc : func (
253
+ _ * testing.T ,
254
+ _ * mocks.CommandCreator ,
255
+ lcc * mocks.LimaCmdCreator ,
256
+ _ * mocks.Command ,
257
+ ncsd * mocks.NerdctlCommandSystemDeps ,
258
+ logger * mocks.Logger ,
259
+ ctrl * gomock.Controller ,
260
+ _ afero.Fs ,
261
+ ) {
262
+ getVMStatusC := mocks .NewCommand (ctrl )
263
+ lcc .EXPECT ().CreateWithoutStdio ("ls" , "-f" , "{{.Status}}" , limaInstanceName ).Return (getVMStatusC )
264
+ getVMStatusC .EXPECT ().Output ().Return ([]byte ("Running" ), nil )
265
+ logger .EXPECT ().SetLevel (flog .Debug )
266
+ logger .EXPECT ().Debugf ("Status of virtual machine: %s" , "Running" )
267
+ ncsd .EXPECT ().LookupEnv ("AWS_ACCESS_KEY_ID" ).Return ("" , false )
268
+ ncsd .EXPECT ().LookupEnv ("AWS_SECRET_ACCESS_KEY" ).Return ("" , false )
269
+ ncsd .EXPECT ().LookupEnv ("AWS_SESSION_TOKEN" ).Return ("" , false )
270
+ c := mocks .NewCommand (ctrl )
271
+ ncsd .EXPECT ().LookupEnv ("ARG2" )
272
+ ncsd .EXPECT ().LookupEnv ("ARG3" ).Return ("val3" , true )
273
+ ncsd .EXPECT ().LookupEnv ("COSIGN_PASSWORD" ).Return ("" , false )
274
+ ncsd .EXPECT ().GetWd ().Return ("C:\\ workdir" , nil )
275
+ ncsd .EXPECT ().FilePathAbs ("C:\\ workdir" ).Return ("C:\\ workdir" , nil )
276
+ ncsd .EXPECT ().FilePathJoin (string (filepath .Separator ), "mnt" , "c" , "workdir" ).Return (augmentedPath )
277
+ ncsd .EXPECT ().FilePathToSlash (augmentedPath ).Return (wslPath )
278
+ // alias substitution run=>container run
279
+ lcc .EXPECT ().Create ("shell" , "--workdir" , wslPath , limaInstanceName , "sudo" , "-E" , nerdctlCmdName , "container" , "run" ,
280
+ "--rm" , "-e" , "ARG3=val3" , "alpine:latest" , "env" ).Return (c )
243
281
c .EXPECT ().Run ()
244
282
},
245
283
},
@@ -278,7 +316,47 @@ func TestNerdctlCommand_run(t *testing.T) {
278
316
ncsd .EXPECT ().FilePathJoin (string (filepath .Separator ), "mnt" , "c" , "workdir" ).Return (augmentedPath )
279
317
ncsd .EXPECT ().FilePathToSlash (augmentedPath ).Return (wslPath )
280
318
lcc .EXPECT ().Create ("shell" , "--workdir" , wslPath , limaInstanceName ,
281
- "sudo" , "-E" , nerdctlCmdName , "container" , "run" , "-e" , "ARG1=val1" , "--rm" , "alpine:latest" , "env" ).Return (c )
319
+ "sudo" , "-E" , nerdctlCmdName , "container" , "run" , "--rm" , "-e" , "ARG1=val1" , "alpine:latest" , "env" ).Return (c )
320
+ c .EXPECT ().Run ()
321
+ },
322
+ },
323
+ {
324
+ name : "with --env-file flag replacement and with --debug flag" ,
325
+ cmdName : "run" ,
326
+ fc : & config.Finch {},
327
+ args : []string {"--debug" , "--rm" , "--env-file=" + envFilePath , "alpine:latest" , "env" },
328
+ wantErr : nil ,
329
+ mockSvc : func (
330
+ t * testing.T ,
331
+ _ * mocks.CommandCreator ,
332
+ lcc * mocks.LimaCmdCreator ,
333
+ _ * mocks.Command ,
334
+ ncsd * mocks.NerdctlCommandSystemDeps ,
335
+ logger * mocks.Logger ,
336
+ ctrl * gomock.Controller ,
337
+ fs afero.Fs ,
338
+ ) {
339
+ envFileStr := "# a comment\n ARG1=val1\n ARG2\n \n # a 2nd comment\n NOTSETARG\n "
340
+ require .NoError (t , afero .WriteFile (fs , envFilePath , []byte (envFileStr ), 0o600 ))
341
+
342
+ getVMStatusC := mocks .NewCommand (ctrl )
343
+ lcc .EXPECT ().CreateWithoutStdio ("ls" , "-f" , "{{.Status}}" , limaInstanceName ).Return (getVMStatusC )
344
+ getVMStatusC .EXPECT ().Output ().Return ([]byte ("Running" ), nil )
345
+ logger .EXPECT ().SetLevel (flog .Debug )
346
+ logger .EXPECT ().Debugf ("Status of virtual machine: %s" , "Running" )
347
+ ncsd .EXPECT ().LookupEnv ("AWS_ACCESS_KEY_ID" ).Return ("" , false )
348
+ ncsd .EXPECT ().LookupEnv ("AWS_SECRET_ACCESS_KEY" ).Return ("" , false )
349
+ ncsd .EXPECT ().LookupEnv ("AWS_SESSION_TOKEN" ).Return ("" , false )
350
+ c := mocks .NewCommand (ctrl )
351
+ ncsd .EXPECT ().LookupEnv ("ARG2" )
352
+ ncsd .EXPECT ().LookupEnv ("NOTSETARG" )
353
+ ncsd .EXPECT ().LookupEnv ("COSIGN_PASSWORD" ).Return ("" , false )
354
+ ncsd .EXPECT ().GetWd ().Return ("C:\\ workdir" , nil )
355
+ ncsd .EXPECT ().FilePathAbs ("C:\\ workdir" ).Return ("C:\\ workdir" , nil )
356
+ ncsd .EXPECT ().FilePathJoin (string (filepath .Separator ), "mnt" , "c" , "workdir" ).Return (augmentedPath )
357
+ ncsd .EXPECT ().FilePathToSlash (augmentedPath ).Return (wslPath )
358
+ lcc .EXPECT ().Create ("shell" , "--workdir" , wslPath , limaInstanceName ,
359
+ "sudo" , "-E" , nerdctlCmdName , "container" , "run" , "--rm" , "-e" , "ARG1=val1" , "alpine:latest" , "env" ).Return (c )
282
360
c .EXPECT ().Run ()
283
361
},
284
362
},
@@ -317,7 +395,7 @@ func TestNerdctlCommand_run(t *testing.T) {
317
395
ncsd .EXPECT ().FilePathJoin (string (filepath .Separator ), "mnt" , "c" , "workdir" ).Return (augmentedPath )
318
396
ncsd .EXPECT ().FilePathToSlash (augmentedPath ).Return (wslPath )
319
397
lcc .EXPECT ().Create ("shell" , "--workdir" , wslPath , limaInstanceName ,
320
- "sudo" , "-E" , nerdctlCmdName , "container" , "run" , "-e " , "ARG2=val2 " , "--rm " , "alpine:latest" , "env" ).Return (c )
398
+ "sudo" , "-E" , nerdctlCmdName , "container" , "run" , "--rm " , "-e " , "ARG2=val2 " , "alpine:latest" , "env" ).Return (c )
321
399
c .EXPECT ().Run ()
322
400
},
323
401
},
0 commit comments