From fc8c5fdce62fb229202659408798a7b6c98f6e8b Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Fri, 28 Apr 2023 01:36:55 +0800 Subject: --- cli/internal/client/client_test.go | 159 ------------------------------------- 1 file changed, 159 deletions(-) delete mode 100644 cli/internal/client/client_test.go (limited to 'cli/internal/client/client_test.go') 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 ", resp) - } -} -- cgit v1.2.3-70-g09d2