package gui import ( "context" "errors" "testing" "huya-go/internal/huya" ) func TestCookieCheckVerdict(t *testing.T) { tests := []struct { name string resp *huya.GetUserScoreResp err error wantStatus string }{ { name: "valid", resp: &huya.GetUserScoreResp{Status: 200, Msg: "请求成功"}, wantStatus: CookieStatusValid, }, { name: "account_not_bound", resp: &huya.GetUserScoreResp{Status: 500, Msg: "账号未绑定!"}, wantStatus: CookieStatusExpired, }, { name: "login_expired", resp: &huya.GetUserScoreResp{Status: 500, Msg: "登录态已失效,请重新登录"}, wantStatus: CookieStatusExpired, }, { name: "too_frequent_is_unknown", resp: &huya.GetUserScoreResp{Status: 500, Msg: "活动太火爆了,请稍后重试"}, wantStatus: CookieStatusUnknown, }, { name: "timeout_is_unknown", err: context.DeadlineExceeded, wantStatus: CookieStatusUnknown, }, { name: "nil_response_is_unknown", wantStatus: CookieStatusUnknown, }, { name: "network_error_is_unknown", err: errors.New("connection reset"), wantStatus: CookieStatusUnknown, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, _, _ := cookieCheckVerdict(tt.resp, tt.err) if got != tt.wantStatus { t.Fatalf("cookieCheckVerdict() status = %q, want %q", got, tt.wantStatus) } }) } } func TestCookieCheckConcurrency(t *testing.T) { tests := []struct { input int want int }{ {input: 0, want: 5}, {input: 1, want: 3}, {input: 7, want: 7}, {input: 50, want: 10}, } for _, tt := range tests { if got := cookieCheckConcurrency(tt.input); got != tt.want { t.Fatalf("cookieCheckConcurrency(%d) = %d, want %d", tt.input, got, tt.want) } } }