diff options
| author | 2023-04-28 01:36:55 +0800 | |
|---|---|---|
| committer | 2023-04-28 01:36:55 +0800 | |
| commit | fc8c5fdce62fb229202659408798a7b6c98f6e8b (patch) | |
| tree | 7554f80e50de4af6fd255afa7c21bcdd58a7af34 /cli/internal/client/client_test.go | |
| parent | dd84b9d64fb98746a230cd24233ff50a562c39c9 (diff) | |
| download | HydroRoll-fc8c5fdce62fb229202659408798a7b6c98f6e8b.tar.gz HydroRoll-fc8c5fdce62fb229202659408798a7b6c98f6e8b.zip | |
Diffstat (limited to 'cli/internal/client/client_test.go')
| -rw-r--r-- | cli/internal/client/client_test.go | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/cli/internal/client/client_test.go b/cli/internal/client/client_test.go deleted file mode 100644 index 36ff3fb..0000000 --- a/cli/internal/client/client_test.go +++ /dev/null @@ -1,159 +0,0 @@ -package client - -import ( - "bytes" - "encoding/json" - "errors" - "io/ioutil" - "net/http" - "net/http/httptest" - "reflect" - "testing" - - "github.com/google/uuid" - "github.com/hashicorp/go-hclog" - "github.com/vercel/turbo/cli/internal/util" -) - -func Test_sendToServer(t *testing.T) { - ch := make(chan []byte, 1) - ts := httptest.NewServer( - http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - defer req.Body.Close() - b, err := ioutil.ReadAll(req.Body) - if err != nil { - t.Errorf("failed to read request %v", err) - } - ch <- b - w.WriteHeader(200) - w.Write([]byte{}) - })) - defer ts.Close() - - remoteConfig := RemoteConfig{ - TeamSlug: "my-team-slug", - APIURL: ts.URL, - Token: "my-token", - } - apiClient := NewClient(remoteConfig, hclog.Default(), "v1", Opts{}) - - myUUID, err := uuid.NewUUID() - if err != nil { - t.Errorf("failed to create uuid %v", err) - } - events := []map[string]interface{}{ - { - "sessionId": myUUID.String(), - "hash": "foo", - "source": "LOCAL", - "event": "hit", - }, - { - "sessionId": myUUID.String(), - "hash": "bar", - "source": "REMOTE", - "event": "MISS", - }, - } - - apiClient.RecordAnalyticsEvents(events) - - body := <-ch - - result := []map[string]interface{}{} - err = json.Unmarshal(body, &result) - if err != nil { - t.Errorf("unmarshalling body %v", err) - } - if !reflect.DeepEqual(events, result) { - t.Errorf("roundtrip got %v, want %v", result, events) - } -} - -func Test_PutArtifact(t *testing.T) { - ch := make(chan []byte, 1) - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - defer req.Body.Close() - b, err := ioutil.ReadAll(req.Body) - if err != nil { - t.Errorf("failed to read request %v", err) - } - ch <- b - w.WriteHeader(200) - w.Write([]byte{}) - })) - defer ts.Close() - - // Set up test expected values - remoteConfig := RemoteConfig{ - TeamSlug: "my-team-slug", - APIURL: ts.URL, - Token: "my-token", - } - apiClient := NewClient(remoteConfig, hclog.Default(), "v1", Opts{}) - expectedArtifactBody := []byte("My string artifact") - - // Test Put Artifact - apiClient.PutArtifact("hash", expectedArtifactBody, 500, "") - testBody := <-ch - if !bytes.Equal(expectedArtifactBody, testBody) { - t.Errorf("Handler read '%v', wants '%v'", testBody, expectedArtifactBody) - } - -} - -func Test_PutWhenCachingDisabled(t *testing.T) { - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - defer func() { _ = req.Body.Close() }() - w.WriteHeader(403) - _, _ = w.Write([]byte("{\"code\": \"remote_caching_disabled\",\"message\":\"caching disabled\"}")) - })) - defer ts.Close() - - // Set up test expected values - remoteConfig := RemoteConfig{ - TeamSlug: "my-team-slug", - APIURL: ts.URL, - Token: "my-token", - } - apiClient := NewClient(remoteConfig, hclog.Default(), "v1", Opts{}) - expectedArtifactBody := []byte("My string artifact") - // Test Put Artifact - err := apiClient.PutArtifact("hash", expectedArtifactBody, 500, "") - cd := &util.CacheDisabledError{} - if !errors.As(err, &cd) { - t.Errorf("expected cache disabled error, got %v", err) - } - if cd.Status != util.CachingStatusDisabled { - t.Errorf("caching status: expected %v, got %v", util.CachingStatusDisabled, cd.Status) - } -} - -func Test_FetchWhenCachingDisabled(t *testing.T) { - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - defer func() { _ = req.Body.Close() }() - w.WriteHeader(403) - _, _ = w.Write([]byte("{\"code\": \"remote_caching_disabled\",\"message\":\"caching disabled\"}")) - })) - defer ts.Close() - - // Set up test expected values - remoteConfig := RemoteConfig{ - TeamSlug: "my-team-slug", - APIURL: ts.URL, - Token: "my-token", - } - apiClient := NewClient(remoteConfig, hclog.Default(), "v1", Opts{}) - // Test Put Artifact - resp, err := apiClient.FetchArtifact("hash") - cd := &util.CacheDisabledError{} - if !errors.As(err, &cd) { - t.Errorf("expected cache disabled error, got %v", err) - } - if cd.Status != util.CachingStatusDisabled { - t.Errorf("caching status: expected %v, got %v", util.CachingStatusDisabled, cd.Status) - } - if resp != nil { - t.Errorf("response got %v, want <nil>", resp) - } -} |
