package imvu import ( "context" "errors" "net/http" "net/http/httptest" "testing" ) func TestByUsername(t *testing.T) { srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.URL.Query().Get("username") == "Nobody" { w.Write([]byte(`{"status":"success","id":"x","denormalized":{}}`)) return } w.Write([]byte(`{"status":"success","id":"https://api.imvu.com/user?username=Someone","denormalized":{ "https://api.imvu.com/user/user-42":{"data":{"legacy_cid":42,"username":"Someone","tagline":"hi t5de-ABCD", "is_ageverified":true,"is_ap":false}}}}`)) })) defer srv.Close() c := &Client{Base: srv.URL, HTTP: srv.Client()} u, err := c.ByUsername(context.Background(), "Someone") if err != nil || u.ID != 42 || u.Username != "Someone" || u.Tagline != "hi t5de-ABCD" || !u.AgeVerified || u.AccessPass { t.Fatalf("%+v %v", u, err) } if _, err := c.ByUsername(context.Background(), "Nobody"); !errors.Is(err, ErrNoSuchUser) { t.Fatalf("got %v", err) } }