Files
fn_registry/functions/infra/e2e_run_checks_test.go
egutierrez 750b7abcd5 chore: auto-commit (97 archivos)
- .claude/CLAUDE.md
- .claude/agents/fn-recopilador/SKILL.md
- .claude/rules/INDEX.md
- .claude/rules/cpp_apps.md
- bash/functions/infra/build_cpp_windows.sh
- cpp/CMakeLists.txt
- cpp/PATTERNS.md
- cpp/framework/app_base.cpp
- cpp/framework/app_base.h
- dev/issues/README.md
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 18:11:24 +02:00

74 lines
2.0 KiB
Go

package infra
import (
"testing"
)
func TestE2ERunChecks(t *testing.T) {
t.Run("todos los checks pasan con exit 0", func(t *testing.T) {
zero := 0
checks := []E2ECheck{
{ID: "check-echo", Cmd: "echo hello", ExpectExit: &zero, ExpectStdoutContains: "hello"},
{ID: "check-true", Cmd: "true"},
}
results, err := E2ERunChecks(checks, "")
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if len(results) != 2 {
t.Fatalf("expected 2 results, got %d", len(results))
}
for _, r := range results {
if r.Status != "pass" {
t.Errorf("check %q: expected pass, got %q (error: %s)", r.ID, r.Status, r.Error)
}
}
})
t.Run("check falla por exit code incorrecto", func(t *testing.T) {
expectedExit := 0
checks := []E2ECheck{
{ID: "check-fail-exit", Cmd: "exit 1", ExpectExit: &expectedExit},
}
results, err := E2ERunChecks(checks, "")
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if len(results) != 1 {
t.Fatalf("expected 1 result, got %d", len(results))
}
if results[0].Status != "fail" {
t.Errorf("expected fail, got %q", results[0].Status)
}
if results[0].ExitCode == 0 {
t.Errorf("expected non-zero exit code")
}
})
t.Run("check falla por stdout_contains no encontrado", func(t *testing.T) {
checks := []E2ECheck{
{ID: "check-stdout", Cmd: "echo hello", ExpectStdoutContains: "world"},
}
results, err := E2ERunChecks(checks, "")
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if results[0].Status != "fail" {
t.Errorf("expected fail when stdout does not contain expected string, got %q", results[0].Status)
}
})
t.Run("check falla por timeout de comando", func(t *testing.T) {
checks := []E2ECheck{
{ID: "check-timeout", Cmd: "sleep 60", TimeoutS: 1},
}
results, err := E2ERunChecks(checks, "")
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if results[0].Status != "fail" {
t.Errorf("expected fail on timeout, got %q (error: %s)", results[0].Status, results[0].Error)
}
})
}