package tools import "testing" func TestRetrievalModeConstants(t *testing.T) { if RetrievalModeSemantic != "semantic" { t.Fatalf("RetrievalModeSemantic = %q, want %q", RetrievalModeSemantic, "semantic") } if RetrievalModeText != "text" { t.Fatalf("RetrievalModeText = %q, want %q", RetrievalModeText, "text") } } func TestSearchOutputIncludesRetrievalMode(t *testing.T) { out := SearchOutput{RetrievalMode: RetrievalModeSemantic} if out.RetrievalMode != RetrievalModeSemantic { t.Fatalf("SearchOutput.RetrievalMode = %q, want %q", out.RetrievalMode, RetrievalModeSemantic) } } func TestRelatedOutputIncludesRetrievalMode(t *testing.T) { out := RelatedOutput{RetrievalMode: RetrievalModeText} if out.RetrievalMode != RetrievalModeText { t.Fatalf("RelatedOutput.RetrievalMode = %q, want %q", out.RetrievalMode, RetrievalModeText) } // retrieval_mode is omitempty — empty string means semantic search was skipped out2 := RelatedOutput{} if out2.RetrievalMode != "" { t.Fatalf("RelatedOutput.RetrievalMode = %q, want empty when include_semantic is false", out2.RetrievalMode) } } func TestSummarizeOutputIncludesRetrievalModeOnlyWhenQueryUsed(t *testing.T) { withQuery := SummarizeOutput{Summary: "s", Count: 1, RetrievalMode: RetrievalModeSemantic} if withQuery.RetrievalMode != RetrievalModeSemantic { t.Fatalf("SummarizeOutput.RetrievalMode = %q, want %q", withQuery.RetrievalMode, RetrievalModeSemantic) } withoutQuery := SummarizeOutput{Summary: "s", Count: 1} if withoutQuery.RetrievalMode != "" { t.Fatalf("SummarizeOutput.RetrievalMode = %q, want empty when no query", withoutQuery.RetrievalMode) } } func TestProjectContextOutputIncludesRetrievalModeOnlyWhenQueryUsed(t *testing.T) { withQuery := ProjectContextOutput{RetrievalMode: RetrievalModeText} if withQuery.RetrievalMode != RetrievalModeText { t.Fatalf("ProjectContextOutput.RetrievalMode = %q, want %q", withQuery.RetrievalMode, RetrievalModeText) } withoutQuery := ProjectContextOutput{} if withoutQuery.RetrievalMode != "" { t.Fatalf("ProjectContextOutput.RetrievalMode = %q, want empty when no query", withoutQuery.RetrievalMode) } } func TestRecallOutputIncludesRetrievalMode(t *testing.T) { out := RecallOutput{RetrievalMode: RetrievalModeSemantic} if out.RetrievalMode != RetrievalModeSemantic { t.Fatalf("RecallOutput.RetrievalMode = %q, want %q", out.RetrievalMode, RetrievalModeSemantic) } }