package latest import "testing" func TestKaganeAPIURL(t *testing.T) { const uuid = "019f84bc-9ba0-7ed9-86f5-8b905ec7c28b" tests := []struct { name string seriesURL string want string wantOK bool }{ { name: "series page maps to its API endpoint", seriesURL: "https://kagane.to/series/" + uuid, want: "https://kagane.to/api/v2/series/" + uuid, wantOK: true, }, { name: "trailing slash is tolerated", seriesURL: "https://kagane.to/series/" + uuid + "/", want: "https://kagane.to/api/v2/series/" + uuid, wantOK: true, }, {"not a series path", "https://kagane.to/search", "", false}, {"foreign host", "https://evil.example/series/" + uuid, "", false}, {"garbage", "://", "", false}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, ok := kaganeAPIURL(tt.seriesURL) if ok != tt.wantOK || got != tt.want { t.Errorf("kaganeAPIURL(%q) = %q, %v; want %q, %v", tt.seriesURL, got, ok, tt.want, tt.wantOK) } }) } }