Something went wrong. Try again.
Self-hosted web interface and downloader for Qobuz.
downloader self-hosted music qobuz
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758package api_test
import ( "encoding/json" "testing"
"gobuz/internal/api")
func TestUserLoginResponse_UnmarshalJSON(t *testing.T) { raw := `{ "user_auth_token": "token-xyz-123", "user": { "id": 987654, "email": "user@example.com", "display_name": "Test User", "country_code": "US", "language_code": "en", "credential": { "parameters": { "short_label": "Studio Sublime", "lossy_streaming": true, "lossless_streaming": true, "hires_streaming": true, "hires_purchases_streaming": true, "offline_streaming": true, "mobile_streaming": true } }, "subscription": { "offer": "sublime", "end_date": "2027-12-31" } } }`
var loginResp api.UserLoginResponse if err := json.Unmarshal([]byte(raw), &loginResp); err != nil { t.Fatalf("unmarshal UserLoginResponse: %v", err) }
if loginResp.UserAuthToken != "token-xyz-123" { t.Errorf("token = %q, want token-xyz-123", loginResp.UserAuthToken) } if loginResp.User.ID != "987654" { t.Errorf("id = %q, want 987654", loginResp.User.ID) } if loginResp.User.Credential.Parameters == nil || loginResp.User.Credential.Parameters.ShortLabel != "Studio Sublime" { t.Errorf("unexpected credential parameters: %v", loginResp.User.Credential.Parameters) } if !loginResp.User.Credential.Parameters.HiResStreaming { t.Errorf("hires_streaming = false, want true") } if loginResp.User.Subscription == nil || loginResp.User.Subscription.Offer != "sublime" { t.Errorf("unexpected subscription: %v", loginResp.User.Subscription) }}