@@ -21,13 +21,14 @@ import (
2121 "strings"
2222 "testing"
2323
24- compose "github.com/docker/compose/v2/pkg/api"
25- "github.com/docker/compose/v2/pkg/mocks"
2624 moby "github.com/docker/docker/api/types"
2725 "github.com/docker/docker/api/types/filters"
2826 "github.com/docker/docker/api/types/volume"
2927 "github.com/golang/mock/gomock"
3028 "gotest.tools/v3/assert"
29+
30+ compose "github.com/docker/compose/v2/pkg/api"
31+ "github.com/docker/compose/v2/pkg/mocks"
3132)
3233
3334func TestDown (t * testing.T ) {
@@ -48,8 +49,14 @@ func TestDown(t *testing.T) {
4849 }, nil )
4950 api .EXPECT ().VolumeList (gomock .Any (), filters .NewArgs (projectFilter (strings .ToLower (testProject )))).
5051 Return (volume.VolumeListOKBody {}, nil )
52+
53+ // network names are not guaranteed to be unique, ensure Compose handles
54+ // cleanup properly if duplicates are inadvertently created
5155 api .EXPECT ().NetworkList (gomock .Any (), moby.NetworkListOptions {Filters : filters .NewArgs (projectFilter (strings .ToLower (testProject )))}).
52- Return ([]moby.NetworkResource {{Name : "myProject_default" }}, nil )
56+ Return ([]moby.NetworkResource {
57+ {ID : "abc123" , Name : "myProject_default" },
58+ {ID : "def456" , Name : "myProject_default" },
59+ }, nil )
5360
5461 api .EXPECT ().ContainerStop (gomock .Any (), "123" , nil ).Return (nil )
5562 api .EXPECT ().ContainerStop (gomock .Any (), "456" , nil ).Return (nil )
@@ -59,8 +66,14 @@ func TestDown(t *testing.T) {
5966 api .EXPECT ().ContainerRemove (gomock .Any (), "456" , moby.ContainerRemoveOptions {Force : true }).Return (nil )
6067 api .EXPECT ().ContainerRemove (gomock .Any (), "789" , moby.ContainerRemoveOptions {Force : true }).Return (nil )
6168
62- api .EXPECT ().NetworkInspect (gomock .Any (), "myProject_default" , moby.NetworkInspectOptions {}).Return (moby.NetworkResource {Name : "myProject_default" }, nil )
63- api .EXPECT ().NetworkRemove (gomock .Any (), "myProject_default" ).Return (nil )
69+ api .EXPECT ().NetworkList (gomock .Any (), moby.NetworkListOptions {
70+ Filters : filters .NewArgs (filters .Arg ("name" , "myProject_default" )),
71+ }).Return ([]moby.NetworkResource {
72+ {ID : "abc123" , Name : "myProject_default" },
73+ {ID : "def456" , Name : "myProject_default" },
74+ }, nil )
75+ api .EXPECT ().NetworkRemove (gomock .Any (), "abc123" ).Return (nil )
76+ api .EXPECT ().NetworkRemove (gomock .Any (), "def456" ).Return (nil )
6477
6578 err := tested .Down (context .Background (), strings .ToLower (testProject ), compose.DownOptions {})
6679 assert .NilError (t , err )
@@ -94,8 +107,10 @@ func TestDownRemoveOrphans(t *testing.T) {
94107 api .EXPECT ().ContainerRemove (gomock .Any (), "789" , moby.ContainerRemoveOptions {Force : true }).Return (nil )
95108 api .EXPECT ().ContainerRemove (gomock .Any (), "321" , moby.ContainerRemoveOptions {Force : true }).Return (nil )
96109
97- api .EXPECT ().NetworkInspect (gomock .Any (), "myProject_default" , moby.NetworkInspectOptions {}).Return (moby.NetworkResource {Name : "myProject_default" }, nil )
98- api .EXPECT ().NetworkRemove (gomock .Any (), "myProject_default" ).Return (nil )
110+ api .EXPECT ().NetworkList (gomock .Any (), moby.NetworkListOptions {
111+ Filters : filters .NewArgs (filters .Arg ("name" , "myProject_default" )),
112+ }).Return ([]moby.NetworkResource {{ID : "abc123" , Name : "myProject_default" }}, nil )
113+ api .EXPECT ().NetworkRemove (gomock .Any (), "abc123" ).Return (nil )
99114
100115 err := tested .Down (context .Background (), strings .ToLower (testProject ), compose.DownOptions {RemoveOrphans : true })
101116 assert .NilError (t , err )
0 commit comments