Content-Length: 3399 | pFad | https://github.com/nicklaw5/helix/raw/refs/heads/main/entitlement_codes_test.go

th: 3387 package helix import ( "context" "net/http" "testing" ) func TestClient_GetEntitlementCodeStatus(t *testing.T) { t.Parallel() testCases := []struct { statusCode int options *Options count int userID string codes []string respBody string }{ // TODO: expand with other test cases, including negative scenarios { http.StatusOK, &Options{ClientID: "my-client-id"}, 2, "156900877", []string{"KUHXV-4GXYP-AKAKK", "XZDDZ-5SIQR-RT5M3"}, `{"data":[{"code":"KUHXV-4GXYP-AKAKK","status":"UNUSED"},{"code":"XZDDZ-5SIQR-RT5M3","status":"ALREADY_CLAIMED"}]}`, }, } for _, testCase := range testCases { c := newMockClient(testCase.options, newMockHandler(testCase.statusCode, testCase.respBody, nil)) params := &CodesParams{ UserID: testCase.userID, Codes: testCase.codes, } resp, err := c.GetEntitlementCodeStatus(params) if err != nil { t.Error(err) } if resp.StatusCode != testCase.statusCode { t.Errorf("expected status code to be \"%d\", got \"%d\"", testCase.statusCode, resp.StatusCode) } // TODO: Test error cases // Test success cases if len(resp.Data.Codes) != testCase.count { t.Errorf("expected number of results to be \"%d\", got \"%d\"", testCase.count, len(resp.Data.Codes)) } for index, code := range testCase.codes { codes := resp.Data.Codes[index] if codes.Code != code { t.Error("expected entitlement code \"#{code}\", got \"#{codes.Code}\"") } } } // Test with HTTP Failure options := &Options{ ClientID: "my-client-id", HTTPClient: &badMockHTTPClient{ newMockHandler(0, "", nil), }, } c := &Client{ opts: options, ctx: context.Background(), } _, err := c.GetEntitlementCodeStatus(&CodesParams{}) if err == nil { t.Error("expected error but got nil") } if err.Error() != "Failed to execute API request: Oops, that's bad :(" { t.Error("expected error does match return error") } } func TestClient_RedeemEntitlementCode(t *testing.T) { t.Parallel() testCases := []struct { statusCode int options *Options count int userID string codes []string respBody string }{ // TODO: expand with other test cases, including negative scenarios { http.StatusOK, &Options{ClientID: "my-client-id"}, 2, "156900877", []string{"KUHXV-4GXYP-AKAKK", "XZDDZ-5SIQR-RT5M3"}, `{"data":[{"code":"KUHXV-4GXYP-AKAKK","status":"SUCCESSFULLY_REDEEMED"},{"code":"XZDDZ-5SIQR-RT5M3","status":"ALREADY_CLAIMED"}]}`, }, } for _, testCase := range testCases { c := newMockClient(testCase.options, newMockHandler(testCase.statusCode, testCase.respBody, nil)) params := &CodesParams{ UserID: testCase.userID, Codes: testCase.codes, } resp, err := c.GetEntitlementCodeStatus(params) if err != nil { t.Error(err) } if resp.StatusCode != testCase.statusCode { t.Errorf("expected status code to be \"%d\", got \"%d\"", testCase.statusCode, resp.StatusCode) } // TODO: Test error cases // Test success cases if len(resp.Data.Codes) != testCase.count { t.Errorf("expected number of results to be \"%d\", got \"%d\"", testCase.count, len(resp.Data.Codes)) } for index, code := range testCase.codes { codes := resp.Data.Codes[index] if codes.Code != code { t.Error("expected entitlement code \"#{code}\", got \"#{codes.Code}\"") } } } }








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://github.com/nicklaw5/helix/raw/refs/heads/main/entitlement_codes_test.go

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy