Skip to content

Commit 731fd2b

Browse files
committed
feat: verify network existence via docker CLI in integration tests
Adds dockerNetworkExists() helper and docker network inspect calls to verify networks are actually created/destroyed at the Docker level, not just via dokku's return values.
1 parent dc4ce85 commit 731fd2b

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

tasks/integration_test.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
207218
func 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

Comments
 (0)