Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 13 additions & 10 deletions benchmarks/mcp_executor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,30 +63,33 @@ func getServerPath() string {
return "../bin/unified-thinking"
}

// checkRequiredEnv verifies required environment variables are set AND services are reachable - FAILS if not
// checkRequiredEnv verifies required environment variables are set AND services are reachable.
// Skips the test (rather than failing) when credentials or services are absent, so CI
// without secrets configured does not produce false-negative failures.
func checkRequiredEnv(t *testing.T) {
t.Helper()
if os.Getenv("VOYAGE_API_KEY") == "" {
t.Fatal("VOYAGE_API_KEY not set - required for embeddings")
t.Skip("VOYAGE_API_KEY not set - skipping integration test (set to run)")
}
if os.Getenv("ANTHROPIC_API_KEY") == "" {
t.Fatal("ANTHROPIC_API_KEY not set - required for GoT and LLM features")
t.Skip("ANTHROPIC_API_KEY not set - skipping integration test (set to run)")
}
if os.Getenv("NEO4J_URI") == "" {
t.Fatal("NEO4J_URI not set - required for knowledge graph")
t.Skip("NEO4J_URI not set - skipping integration test (set to run)")
}
if os.Getenv("NEO4J_USERNAME") == "" {
t.Fatal("NEO4J_USERNAME not set - required for knowledge graph")
t.Skip("NEO4J_USERNAME not set - skipping integration test (set to run)")
}
if os.Getenv("NEO4J_PASSWORD") == "" {
t.Fatal("NEO4J_PASSWORD not set - required for knowledge graph")
t.Skip("NEO4J_PASSWORD not set - skipping integration test (set to run)")
}

// Verify Neo4j connectivity - fail fast if not reachable
// Verify Neo4j connectivity - skip if not reachable
checkNeo4jConnectivity(t)
}

// checkNeo4jConnectivity verifies Neo4j is running and reachable - FAILS if not
// checkNeo4jConnectivity verifies Neo4j is running and reachable.
// Skips the test when the instance is not reachable.
func checkNeo4jConnectivity(t *testing.T) {
t.Helper()

Expand All @@ -96,7 +99,7 @@ func checkNeo4jConnectivity(t *testing.T) {

driver, err := neo4j.NewDriverWithContext(uri, neo4j.BasicAuth(username, password, ""))
if err != nil {
t.Fatalf("Neo4j driver creation failed - required for knowledge graph: %v", err)
t.Skipf("Neo4j driver creation failed - skipping integration test: %v", err)
}
defer driver.Close(context.Background())

Expand All @@ -105,7 +108,7 @@ func checkNeo4jConnectivity(t *testing.T) {

err = driver.VerifyConnectivity(ctx)
if err != nil {
t.Fatalf("Neo4j not reachable - required for knowledge graph: %v", err)
t.Skipf("Neo4j not reachable - skipping integration test: %v", err)
}
}

Expand Down
Loading