go-ai/ai/rag_test.go
Virgil f9e2948176
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 2m27s
feat(ai): make RAG facade fail soft
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 05:58:24 +00:00

41 lines
1.1 KiB
Go

package ai
import (
"context"
"errors"
"testing"
"forge.lthn.ai/core/go-rag"
)
func TestQueryRAGForTask_Good_FallsBackToEmptyString(t *testing.T) {
origNewQdrantClient := newQdrantClient
origNewOllamaClient := newOllamaClient
origRunRAGQuery := runRAGQuery
t.Cleanup(func() {
newQdrantClient = origNewQdrantClient
newOllamaClient = origNewOllamaClient
runRAGQuery = origRunRAGQuery
})
newQdrantClient = func(rag.QdrantConfig) (*rag.QdrantClient, error) {
return nil, errors.New("qdrant unavailable")
}
newOllamaClient = func(rag.OllamaConfig) (*rag.OllamaClient, error) {
t.Fatal("unexpected ollama client construction")
return nil, nil
}
runRAGQuery = func(_ context.Context, _ rag.VectorStore, _ rag.Embedder, _ string, _ rag.QueryConfig) ([]rag.QueryResult, error) {
t.Fatal("unexpected RAG query execution")
return nil, nil
}
got := QueryRAGForTask(TaskInfo{
Title: "Investigate build failure",
Description: "The compile step is failing in CI",
})
if got != "" {
t.Fatalf("expected empty fallback context, got %q", got)
}
}