From 6ddb78d5468e6d45f4b7f966458debe6b1397693 Mon Sep 17 00:00:00 2001 From: Jessie Liu Date: Wed, 22 Jan 2025 01:55:54 +0000 Subject: [PATCH] decouple ITA constructor from launchspec definition --- verifier/ita/client.go | 24 +++++++++--------------- verifier/ita/client_test.go | 29 ++++++++--------------------- 2 files changed, 17 insertions(+), 36 deletions(-) diff --git a/verifier/ita/client.go b/verifier/ita/client.go index 8102ff48..60cd96f1 100644 --- a/verifier/ita/client.go +++ b/verifier/ita/client.go @@ -41,32 +41,26 @@ type client struct { apiKey string } -func urlAndKey(regionAndKey string) (string, string, error) { - if regionAndKey == "" { - return "", "", errors.New("API region and key required to initialize ITA client") +func urlFromRegion(region string) (string, error) { + if region == "" { + return "", errors.New("API region required to initialize ITA client") } - // Expect format :. - split := strings.SplitN(regionAndKey, ":", 2) - if len(split) != 2 { - return "", "", errors.New("API region and key not in expected format :") - } - region := strings.ToUpper(split[0]) - url, ok := regionalURLs[region] + url, ok := regionalURLs[strings.ToUpper(region)] if !ok { // Create list of allowed regions. keys := []string{} for k := range regionalURLs { keys = append(keys, k) } - return "", "", fmt.Errorf("unsupported region %v, expect one of %v", region, keys) + return "", fmt.Errorf("unsupported region %v, expect one of %v", region, keys) } - return url, split[1], nil + return url, nil } -func NewClient(regionAndKey string) (verifier.Client, error) { - url, apiKey, err := urlAndKey(regionAndKey) +func NewClient(region string, key string) (verifier.Client, error) { + url, err := urlFromRegion(region) if err != nil { return nil, err } @@ -87,7 +81,7 @@ func NewClient(regionAndKey string) (verifier.Client, error) { }, }, apiURL: url, - apiKey: apiKey, + apiKey: key, }, nil } diff --git a/verifier/ita/client_test.go b/verifier/ita/client_test.go index 8cbd6b18..5e167910 100644 --- a/verifier/ita/client_test.go +++ b/verifier/ita/client_test.go @@ -279,14 +279,10 @@ func TestConvertRequestToTokenRequest(t *testing.T) { } } -func TestURLAndKey(t *testing.T) { - testAPIKey := "testAPIKey" - +func TestURLFromRegion(t *testing.T) { for region, expectedURL := range regionalURLs { t.Run(region+" region", func(t *testing.T) { - regionAndKey := region + ":" + testAPIKey - - url, key, err := urlAndKey(regionAndKey) + url, err := urlFromRegion(region) if err != nil { t.Fatalf("urlAndKey returned error: %v", err) } @@ -294,40 +290,31 @@ func TestURLAndKey(t *testing.T) { if url != expectedURL { t.Errorf("urlAndKey did not return expected URL: got %v, want %v", url, expectedURL) } - - if key != testAPIKey { - t.Errorf("urlAndKey did not return expected API key: got %v, want %v", url, expectedURL) - } }) } } -func TestURLAndKeyError(t *testing.T) { +func TestURLFromRegionError(t *testing.T) { testcases := []struct { name string - regionAndKey string + region string expectedSubstr string }{ - { - name: "No colon separator", - regionAndKey: "notAValidInput", - expectedSubstr: "not in expected format", - }, { name: "Unsupported region", - regionAndKey: "Narnia:test-api-key", + region: "ANTARCTICA", expectedSubstr: "unsupported region", }, { name: "Empty input", - regionAndKey: "", - expectedSubstr: "region and key required", + region: "", + expectedSubstr: "region required", }, } for _, tc := range testcases { t.Run(tc.name, func(t *testing.T) { - _, _, err := urlAndKey(tc.regionAndKey) + _, err := urlFromRegion(tc.region) if err == nil { t.Fatal("urlAndKey returned successfully, expected error") }