kafka/internal/engines/wikipedia_test.go
Franz Kafka 6346fb7155 chore: update Go module path to github.com/metamorphosis-dev/kafka
Module path now matches the GitHub mirror location.
All internal imports updated across 35+ files.
2026-03-21 19:42:01 +00:00

61 lines
1.5 KiB
Go

package engines
import (
"context"
"net/http"
"testing"
"github.com/metamorphosis-dev/kafka/internal/contracts"
)
func TestWikipediaEngine_Search(t *testing.T) {
transport := roundTripperFunc(func(r *http.Request) (*http.Response, error) {
if r.Method != http.MethodGet {
return httpResponse(http.StatusMethodNotAllowed, "", ""), nil
}
if r.URL.Host != "en.wikipedia.org" {
return httpResponse(http.StatusNotFound, "", ""), nil
}
if r.URL.Path != "/api/rest_v1/page/summary/Taxi" {
return httpResponse(http.StatusNotFound, "", ""), nil
}
body := `{
"title": "Taxi",
"description": "A car",
"titles": { "display": "Taxi" },
"content_urls": { "desktop": { "page": "https://en.wikipedia.org/wiki/Taxi" } }
}`
return httpResponse(http.StatusOK, body, "application/json"), nil
})
client := &http.Client{Transport: transport}
engine := &WikipediaEngine{client: client}
resp, err := engine.Search(context.Background(), contracts.SearchRequest{
Query: "Taxi",
Pageno: 1,
Language: "en",
})
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if len(resp.Results) != 1 {
t.Fatalf("expected 1 result, got %d", len(resp.Results))
}
r := resp.Results[0]
if r.Title != "Taxi" {
t.Fatalf("expected title Taxi, got %q", r.Title)
}
if r.Content != "A car" {
t.Fatalf("expected content, got %q", r.Content)
}
if r.URL == nil || *r.URL == "" {
t.Fatalf("expected url, got nil/empty")
}
if *r.URL != "https://en.wikipedia.org/wiki/Taxi" {
t.Fatalf("unexpected url: %q", *r.URL)
}
}