49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
package reportser
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
func TestFetchSDKDomainConfig(t *testing.T) {
|
|
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
if r.Method != http.MethodGet {
|
|
w.WriteHeader(http.StatusMethodNotAllowed)
|
|
return
|
|
}
|
|
_, _ = fmt.Fprint(w, `{"code":0,"msg":"success","data":"domain-config"}`)
|
|
}))
|
|
defer server.Close()
|
|
|
|
got, err := fetchSDKDomainConfig(server.URL, server.Client())
|
|
if err != nil {
|
|
t.Fatalf("fetchSDKDomainConfig error = %v", err)
|
|
}
|
|
if got != "domain-config" {
|
|
t.Fatalf("data = %q, want domain-config", got)
|
|
}
|
|
}
|
|
|
|
func TestFetchSDKDomainConfigRejectsFailedResponse(t *testing.T) {
|
|
for _, tc := range []struct {
|
|
name string
|
|
body string
|
|
}{
|
|
{name: "non-zero code", body: `{"code":1,"msg":"fail","data":"domain-config"}`},
|
|
{name: "empty data", body: `{"code":0,"msg":"success","data":""}`},
|
|
} {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
_, _ = fmt.Fprint(w, tc.body)
|
|
}))
|
|
defer server.Close()
|
|
|
|
if got, err := fetchSDKDomainConfig(server.URL, server.Client()); err == nil {
|
|
t.Fatalf("fetchSDKDomainConfig = %q, want error", got)
|
|
}
|
|
})
|
|
}
|
|
}
|