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>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
package infra
|
||||
|
||||
import (
|
||||
"os/exec"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestDockerComposeDown(t *testing.T) {
|
||||
t.Run("removeVolumes true agrega flag -v 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 debe fallar pero con el mensaje correcto
|
||||
_, err := DockerComposeDown("/ruta/inexistente/docker-compose.yml", true)
|
||||
if err == nil {
|
||||
t.Error("se esperaba error para archivo inexistente")
|
||||
}
|
||||
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 := DockerComposeDown("/ruta/que/no/existe/docker-compose.yml", false)
|
||||
if err == nil {
|
||||
t.Error("se esperaba error para archivo inexistente")
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user