@@ -54,7 +54,7 @@ func TestDownCmdRunE_ConfigFileNotFound(t *testing.T) {
5454 // Save original values
5555 originalConfigFile := configFile
5656 originalRemoveContainers := removeContainers
57- defer func () {
57+ defer func () {
5858 configFile = originalConfigFile
5959 removeContainers = originalRemoveContainers
6060 }()
@@ -63,7 +63,7 @@ func TestDownCmdRunE_ConfigFileNotFound(t *testing.T) {
6363 configFile = "non-existent-file.yml"
6464 removeContainers = false
6565
66- err := downCmdRunE (nil , []string {})
66+ err := downCmdRunE (nil , []string {}, configFile )
6767 if err == nil {
6868 t .Error ("Expected error for non-existent config file" )
6969 }
@@ -77,7 +77,7 @@ func TestDownCmdRunE_InvalidConfig(t *testing.T) {
7777 // Save original values
7878 originalConfigFile := configFile
7979 originalRemoveContainers := removeContainers
80- defer func () {
80+ defer func () {
8181 configFile = originalConfigFile
8282 removeContainers = originalRemoveContainers
8383 }()
@@ -99,7 +99,7 @@ services:
9999 t .Fatalf ("Failed to write test config file: %v" , err )
100100 }
101101
102- err = downCmdRunE (nil , []string {})
102+ err = downCmdRunE (nil , []string {}, configFile )
103103 if err == nil {
104104 t .Error ("Expected error for invalid config file" )
105105 }
@@ -112,11 +112,11 @@ services:
112112func TestDownCmdRunE_ValidConfigNoServices (t * testing.T ) {
113113 // Initialize logging to prevent panic
114114 initConfig ()
115-
115+
116116 // Save original values
117117 originalConfigFile := configFile
118118 originalRemoveContainers := removeContainers
119- defer func () {
119+ defer func () {
120120 configFile = originalConfigFile
121121 removeContainers = originalRemoveContainers
122122 }()
@@ -137,7 +137,7 @@ services: {}
137137
138138 // This should fail when trying to create container manager
139139 // since we don't have LXC installed in test environment
140- err = downCmdRunE (nil , []string {})
140+ err = downCmdRunE (nil , []string {}, configFile )
141141 if err == nil {
142142 t .Error ("Expected error when creating container manager without LXC" )
143143 }
@@ -151,7 +151,7 @@ func TestDownCmdRunE_ServiceNotFound(t *testing.T) {
151151 // Save original values
152152 originalConfigFile := configFile
153153 originalRemoveContainers := removeContainers
154- defer func () {
154+ defer func () {
155155 configFile = originalConfigFile
156156 removeContainers = originalRemoveContainers
157157 }()
@@ -173,15 +173,15 @@ services:
173173 }
174174
175175 // Try to stop a service that doesn't exist
176- err = downCmdRunE (nil , []string {"nonexistent" })
176+ err = downCmdRunE (nil , []string {"nonexistent" }, configFile )
177177 if err == nil {
178178 t .Error ("Expected error for non-existent service" )
179179 }
180180
181181 // The error could be either service not found or container manager creation failure
182182 // depending on which happens first
183- if ! strings .Contains (err .Error (), "service 'nonexistent' not found in config" ) &&
184- ! strings .Contains (err .Error (), "failed to create container manager" ) {
183+ if ! strings .Contains (err .Error (), "service 'nonexistent' not found in config" ) &&
184+ ! strings .Contains (err .Error (), "failed to create container manager" ) {
185185 t .Errorf ("Expected error to contain service not found or container manager error, got: %v" , err )
186186 }
187187}
@@ -193,26 +193,26 @@ func TestDownCmdRunE_RemoveContainersFlag(t *testing.T) {
193193 defer func () { removeContainers = originalRemoveContainers }()
194194
195195 tests := []struct {
196- name string
197- removeFlag bool
196+ name string
197+ removeFlag bool
198198 expectedBehavior string
199199 }{
200200 {
201- name : "remove containers enabled" ,
202- removeFlag : true ,
201+ name : "remove containers enabled" ,
202+ removeFlag : true ,
203203 expectedBehavior : "should remove containers" ,
204204 },
205205 {
206- name : "remove containers disabled" ,
207- removeFlag : false ,
206+ name : "remove containers disabled" ,
207+ removeFlag : false ,
208208 expectedBehavior : "should not remove containers" ,
209209 },
210210 }
211211
212212 for _ , tt := range tests {
213213 t .Run (tt .name , func (t * testing.T ) {
214214 removeContainers = tt .removeFlag
215-
215+
216216 // The actual behavior testing would require mocking the container manager
217217 // For now, we just verify the flag is set correctly
218218 if removeContainers != tt .removeFlag {
@@ -244,7 +244,7 @@ services:
244244
245245 // Note: The current implementation has a bug where it tries to access cfg.Services["default"]
246246 // but cfg is already a ComposeConfig. This test documents the current behavior.
247-
247+
248248 // Test service selection logic (conceptually)
249249 tests := []struct {
250250 name string
@@ -272,7 +272,7 @@ services:
272272 t .Run (tt .name , func (t * testing.T ) {
273273 // This test documents the intended behavior
274274 // The actual implementation would need to be fixed to work correctly
275-
275+
276276 var services []string
277277 if len (tt .args ) == 0 {
278278 // Should iterate over all services in config
@@ -291,7 +291,7 @@ services:
291291 if len (services ) != len (tt .expected ) {
292292 t .Errorf ("Expected %d services, got %d" , len (tt .expected ), len (services ))
293293 }
294-
294+
295295 for i , expected := range tt .expected {
296296 if i < len (services ) && services [i ] != expected {
297297 t .Errorf ("Expected service %d to be '%s', got '%s'" , i , expected , services [i ])
@@ -305,11 +305,11 @@ services:
305305func TestDownCmdRunE_EmptyConfigFile (t * testing.T ) {
306306 // Initialize logging to prevent panic
307307 initConfig ()
308-
308+
309309 // Save original values
310310 originalConfigFile := configFile
311311 originalRemoveContainers := removeContainers
312- defer func () {
312+ defer func () {
313313 configFile = originalConfigFile
314314 removeContainers = originalRemoveContainers
315315 }()
@@ -325,7 +325,7 @@ func TestDownCmdRunE_EmptyConfigFile(t *testing.T) {
325325 }
326326
327327 // This should fail when trying to create container manager
328- err = downCmdRunE (nil , []string {})
328+ err = downCmdRunE (nil , []string {}, configFile )
329329 if err == nil {
330330 t .Error ("Expected error when creating container manager without LXC" )
331331 }
@@ -339,7 +339,7 @@ func TestDownCmdRunE_DefaultConfigFile(t *testing.T) {
339339 // Save original values
340340 originalConfigFile := configFile
341341 originalRemoveContainers := removeContainers
342- defer func () {
342+ defer func () {
343343 configFile = originalConfigFile
344344 removeContainers = originalRemoveContainers
345345 }()
@@ -348,7 +348,7 @@ func TestDownCmdRunE_DefaultConfigFile(t *testing.T) {
348348 configFile = ""
349349 removeContainers = false
350350
351- err := downCmdRunE (nil , []string {})
351+ err := downCmdRunE (nil , []string {}, configFile )
352352 if err == nil {
353353 t .Error ("Expected error when no config file specified and default doesn't exist" )
354354 }
@@ -362,11 +362,11 @@ func TestDownCmdRunE_DefaultConfigFile(t *testing.T) {
362362func TestDownCmdRunE_ConfigConversionBug (t * testing.T ) {
363363 // This test documents the bug in the current implementation
364364 // where the code tries to access cfg.Services["default"] but cfg is already a ComposeConfig
365-
365+
366366 // Save original values
367367 originalConfigFile := configFile
368368 originalRemoveContainers := removeContainers
369- defer func () {
369+ defer func () {
370370 configFile = originalConfigFile
371371 removeContainers = originalRemoveContainers
372372 }()
@@ -392,9 +392,9 @@ services:
392392 // The current implementation has a bug in lines 36-40 of down.go:
393393 // It creates a new ComposeConfig and tries to access cfg.Services["default"]
394394 // but cfg is already a *ComposeConfig, not a Container
395-
395+
396396 // This should fail when trying to create container manager anyway
397- err = downCmdRunE (nil , []string {})
397+ err = downCmdRunE (nil , []string {}, configFile )
398398 if err == nil {
399399 t .Error ("Expected error when creating container manager without LXC" )
400400 }
@@ -404,4 +404,4 @@ services:
404404 if ! strings .Contains (err .Error (), "failed to create container manager" ) {
405405 t .Errorf ("Expected error to contain 'failed to create container manager', got: %v" , err )
406406 }
407- }
407+ }
0 commit comments