Files
fn_registry/functions/infra/docker_compose_up_test.go
egutierrez 90693fb32f feat: funciones infra — Docker, deploy, build y health check
Funciones impuras para gestión de contenedores: docker_build_image,
docker_compose_up/down, docker_volume_create/list/remove,
generate_dockerfile, write_dockerfile, go_build_binary, health_check_http,
deploy_app y stop_app. Todas con tests unitarios donde aplica.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 14:24:12 +02:00

35 lines
1.0 KiB
Go

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")
}
})
}