From 47ad62648d013daf41b472260f6573ffee3db154 Mon Sep 17 00:00:00 2001 From: Jeremie Fraeys Date: Sat, 21 Feb 2026 21:20:47 -0500 Subject: [PATCH] test(e2e): skip gracefully when Redis unavailable, fix cross-device link - StartTemporaryRedis now skips tests instead of failing when redis-server unavailable - Fix homelab_e2e_test cross-device link issue using CopyDir instead of Rename --- tests/e2e/homelab_e2e_test.go | 4 ++-- tests/fixtures/test_utils.go | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/e2e/homelab_e2e_test.go b/tests/e2e/homelab_e2e_test.go index 2cefbbf..7db68a6 100644 --- a/tests/e2e/homelab_e2e_test.go +++ b/tests/e2e/homelab_e2e_test.go @@ -328,11 +328,11 @@ func TestConfigurationScenariosE2E(t *testing.T) { // Backup original configs if they exist if _, err := os.Stat(originalConfigDir); err == nil { - if err := os.Rename(originalConfigDir, tempConfigDir); err != nil { + if err := tests.CopyDir(originalConfigDir, tempConfigDir); err != nil { t.Fatalf("Failed to backup configs: %v", err) } defer func() { - _ = os.Rename(tempConfigDir, originalConfigDir) + _ = tests.CopyDir(tempConfigDir, originalConfigDir) }() } diff --git a/tests/fixtures/test_utils.go b/tests/fixtures/test_utils.go index b679caa..6fd47e9 100644 --- a/tests/fixtures/test_utils.go +++ b/tests/fixtures/test_utils.go @@ -128,6 +128,12 @@ func EnsureRedis(t *testing.T) (cleanup func()) { // Start temporary Redis t.Logf("Starting temporary Redis on %s", redisAddr) + + // Check if redis-server is available + if _, err := exec.LookPath("redis-server"); err != nil { + t.Skip("Skipping: redis-server not available in PATH") + } + cmd := exec.CommandContext( context.Background(), "redis-server",