package company import "testing" func TestDedupeRecommendationResponsesByTenderID(t *testing.T) { input := []RecommendedTenderResponse{ {Rank: 1, TenderID: " PROC-1 ", Analysis: " first "}, {Rank: 2, TenderID: "PROC-2", Analysis: "second"}, {Rank: 1, TenderID: "PROC-2", Analysis: "duplicate"}, {Rank: 4, TenderID: " ", Analysis: "ignored"}, } got := dedupeRecommendationResponsesByTenderID(input) if len(got) != 2 { t.Fatalf("dedupeRecommendationResponsesByTenderID() len = %d, want 2", len(got)) } if got[0].TenderID != "PROC-1" || got[0].Analysis != "first" { t.Fatalf("first recommendation = %+v, want trimmed PROC-1/first", got[0]) } if got[1].TenderID != "PROC-2" || got[1].Rank != 2 { t.Fatalf("second recommendation = %+v, want original PROC-2 rank 2", got[1]) } } func TestMergeRecommendedTenders(t *testing.T) { first := []RecommendedTenderResponse{ {Rank: 1, TenderID: " PROC-1 ", Analysis: " first "}, {Rank: 2, TenderID: "PROC-2", Analysis: "second"}, } second := []RecommendedTenderResponse{ {Rank: 1, TenderID: "PROC-2", Analysis: "duplicate"}, {Rank: 3, TenderID: "PROC-3", Analysis: "third"}, {Rank: 4, TenderID: " ", Analysis: "ignored"}, } got := mergeRecommendedTenders(first, second) if len(got) != 3 { t.Fatalf("mergeRecommendedTenders() len = %d, want 3", len(got)) } if got[0].TenderID != "PROC-1" || got[0].Analysis != "first" { t.Fatalf("first recommendation = %+v, want trimmed PROC-1/first", got[0]) } if got[1].TenderID != "PROC-2" || got[1].Rank != 2 { t.Fatalf("second recommendation = %+v, want original PROC-2 rank 2", got[1]) } if got[2].TenderID != "PROC-3" { t.Fatalf("third recommendation = %+v, want PROC-3", got[2]) } } func TestNormalizeRecommendationCompanyIDs(t *testing.T) { got := normalizeRecommendationCompanyIDs([]string{" company-a ", "", "company-b", "company-a"}) want := []string{"company-a", "company-b"} if len(got) != len(want) { t.Fatalf("normalizeRecommendationCompanyIDs() len = %d, want %d", len(got), len(want)) } for i := range want { if got[i] != want[i] { t.Fatalf("normalizeRecommendationCompanyIDs()[%d] = %q, want %q", i, got[i], want[i]) } } }