@@ -204,6 +204,17 @@ func TestIntegrationAppCreateAndDestroy(t *testing.T) {
204204 }
205205}
206206
207+ func dockerNetworkExists (name string ) bool {
208+ result , err := subprocess .CallExecCommand (subprocess.ExecCommandInput {
209+ Command : "docker" ,
210+ Args : []string {"network" , "inspect" , name , "--format" , "{{.Name}}" },
211+ })
212+ if err != nil {
213+ return false
214+ }
215+ return strings .TrimSpace (result .StdoutContents ()) == name
216+ }
217+
207218func TestIntegrationNetworkCreateAndDestroy (t * testing.T ) {
208219 skipIfNoDokkuT (t )
209220
@@ -212,6 +223,11 @@ func TestIntegrationNetworkCreateAndDestroy(t *testing.T) {
212223 // ensure clean state
213224 destroyNetwork (networkName )
214225
226+ // verify network does not exist via docker cli
227+ if dockerNetworkExists (networkName ) {
228+ t .Fatal ("expected network to not exist before creation" )
229+ }
230+
215231 // create the network
216232 task := NetworkTask {Name : networkName , State : StatePresent }
217233 result := task .Execute ()
@@ -225,6 +241,24 @@ func TestIntegrationNetworkCreateAndDestroy(t *testing.T) {
225241 t .Error ("expected changed=true for new network creation" )
226242 }
227243
244+ // verify network exists via docker cli
245+ if ! dockerNetworkExists (networkName ) {
246+ t .Fatal ("expected network to exist after creation" )
247+ }
248+
249+ // verify network driver via docker cli
250+ inspectResult , err := subprocess .CallExecCommand (subprocess.ExecCommandInput {
251+ Command : "docker" ,
252+ Args : []string {"network" , "inspect" , networkName , "--format" , "{{.Driver}}" },
253+ })
254+ if err != nil {
255+ t .Fatalf ("failed to inspect network driver: %v" , err )
256+ }
257+ driver := strings .TrimSpace (inspectResult .StdoutContents ())
258+ if driver != "bridge" {
259+ t .Errorf ("expected network driver 'bridge', got '%s'" , driver )
260+ }
261+
228262 // creating again should be idempotent
229263 result = task .Execute ()
230264 if result .Error != nil {
@@ -250,6 +284,11 @@ func TestIntegrationNetworkCreateAndDestroy(t *testing.T) {
250284 t .Error ("expected changed=true for network destruction" )
251285 }
252286
287+ // verify network does not exist via docker cli after destroy
288+ if dockerNetworkExists (networkName ) {
289+ t .Fatal ("expected network to not exist after destruction" )
290+ }
291+
253292 // destroying again should be idempotent
254293 result = destroyTask .Execute ()
255294 if result .Error != nil {
0 commit comments