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) } }) } }