Files

35 lines
888 B
Go

package client
import (
"context"
"net/http"
"net/http/httptest"
"testing"
)
func TestClientDoResolvesRelativePath(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/api/v2/topics" {
t.Fatalf("path = %q", r.URL.Path)
}
w.WriteHeader(http.StatusOK)
_, _ = w.Write([]byte(`{"ok":true}`))
}))
defer server.Close()
resp, err := New(server.URL, server.Client()).Do(context.Background(), http.MethodGet, "/api/v2/topics", nil, nil)
if err != nil {
t.Fatalf("Do() error = %v", err)
}
if resp.StatusCode != http.StatusOK {
t.Fatalf("status = %d", resp.StatusCode)
}
}
func TestClientDoRejectsEmptyPath(t *testing.T) {
_, err := New("http://127.0.0.1:3000", nil).Do(context.Background(), http.MethodGet, "", nil, nil)
if err == nil {
t.Fatal("Do() expected error for empty path")
}
}