package infra import ( "os/exec" "strings" "testing" ) func TestDockerComposeUp(t *testing.T) { t.Run("detach true agrega flag -d al comando", func(t *testing.T) { // Verificar que docker compose esta disponible if err := exec.Command("docker", "compose", "version").Run(); err != nil { t.Skip("docker compose no disponible") } // Con archivo inexistente y detach, debe fallar pero con el mensaje correcto _, err := DockerComposeUp("/ruta/inexistente/docker-compose.yml", true) if err == nil { t.Error("se esperaba error para archivo inexistente") } // El error debe mencionar el archivo o compose errStr := strings.ToLower(err.Error()) if !strings.Contains(errStr, "compose") && !strings.Contains(errStr, "inexistente") { t.Logf("error obtenido: %v", err) } }) t.Run("error si composeFile no existe", func(t *testing.T) { _, err := DockerComposeUp("/ruta/que/no/existe/docker-compose.yml", false) if err == nil { t.Error("se esperaba error para archivo inexistente") } }) }