From da6d825f45bcdd056f76667aebce97bfb6e55a30 Mon Sep 17 00:00:00 2001 From: mrhid6 Date: Tue, 21 Jul 2026 11:34:56 +0100 Subject: [PATCH] fix(server): TestMain must not exit(0) before m.Run(); skip DB test individually --- server/internal/services/workflows_usage_test.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/server/internal/services/workflows_usage_test.go b/server/internal/services/workflows_usage_test.go index 3e54cb9..aef5c63 100644 --- a/server/internal/services/workflows_usage_test.go +++ b/server/internal/services/workflows_usage_test.go @@ -8,17 +8,21 @@ import ( "github.com/mrhid6/vantage/server/internal/models" ) +var mongoAvailable bool + func TestMain(m *testing.M) { uri := os.Getenv("VANTAGE_TEST_MONGO_URI") if uri == "" { uri = "mongodb://localhost:27117" } if err := db.Connect(uri, "vantage_test"); err != nil { - // No MongoDB available in this environment; skip DB-backed tests. - os.Exit(0) + // No MongoDB available in this environment; DB-backed tests will be skipped + // individually, but the rest of the package's tests must still run. + mongoAvailable = false + } else { + mongoAvailable = true } - code := m.Run() - os.Exit(code) + os.Exit(m.Run()) } func mkUsageStep(name string) models.WorkflowStep { @@ -30,6 +34,9 @@ func mkWorkflowWithStep(name, stepID string) models.Workflow { } func TestStepUsageCounts(t *testing.T) { + if !mongoAvailable { + t.Skip("mongo unavailable: set VANTAGE_TEST_MONGO_URI") + } // A step used by two workflows, a step used by none. used, err := CreateStep(mkUsageStep("used-step")) if err != nil {