diff options
author | Jaime Martinez <jmartinez@gitlab.com> | 2021-04-01 02:15:27 +0300 |
---|---|---|
committer | Jaime Martinez <jmartinez@gitlab.com> | 2021-04-01 02:15:27 +0300 |
commit | 5185001f2e73bfa980f53b5192a623d0f902da33 (patch) | |
tree | 462815826bc898026d1800417b628a9997d07190 | |
parent | 486512e8f45bdf689440c4309f57523b349ffad0 (diff) | |
parent | 9e3d9b7f24a11d67c77d55d7d9b2ae2e3b7040e4 (diff) |
Merge branch '555-mutex-pointer' into 'master'
Do not use pointer for Mutex
Closes #555
See merge request gitlab-org/gitlab-pages!454
-rw-r--r-- | internal/source/gitlab/client/client_stub.go | 5 | ||||
-rw-r--r-- | internal/source/gitlab/gitlab.go | 3 | ||||
-rw-r--r-- | internal/source/gitlab/gitlab_poll_test.go | 3 | ||||
-rw-r--r-- | internal/source/gitlab/gitlab_test.go | 10 |
4 files changed, 17 insertions, 4 deletions
diff --git a/internal/source/gitlab/client/client_stub.go b/internal/source/gitlab/client/client_stub.go index de6161e6..2cd54f10 100644 --- a/internal/source/gitlab/client/client_stub.go +++ b/internal/source/gitlab/client/client_stub.go @@ -12,10 +12,15 @@ import ( type StubClient struct { File string StatusErr func() error + Lookup *api.Lookup } // Resolve implements api.Resolver func (c StubClient) Resolve(ctx context.Context, host string) *api.Lookup { + if c.Lookup != nil { + return c.Lookup + } + lookup := c.GetLookup(ctx, host) return &lookup diff --git a/internal/source/gitlab/gitlab.go b/internal/source/gitlab/gitlab.go index 644ee1ec..7acad679 100644 --- a/internal/source/gitlab/gitlab.go +++ b/internal/source/gitlab/gitlab.go @@ -25,7 +25,7 @@ var errCacheNotConfigured = errors.New("cache not configured") // information about domains from GitLab instance. type Gitlab struct { client api.Resolver - mu *sync.RWMutex + mu sync.RWMutex isReady bool } @@ -48,7 +48,6 @@ func New(config client.Config) (*Gitlab, error) { g := &Gitlab{ client: cachedClient, - mu: &sync.RWMutex{}, } go g.poll(backoff.DefaultInitialInterval, maxPollingTime) diff --git a/internal/source/gitlab/gitlab_poll_test.go b/internal/source/gitlab/gitlab_poll_test.go index 8eecf210..fb2be173 100644 --- a/internal/source/gitlab/gitlab_poll_test.go +++ b/internal/source/gitlab/gitlab_poll_test.go @@ -2,7 +2,6 @@ package gitlab import ( "fmt" - "sync" "testing" "time" @@ -62,7 +61,7 @@ func TestClient_Poll(t *testing.T) { return nil }} - glClient := Gitlab{client: client, mu: &sync.RWMutex{}} + glClient := Gitlab{client: client} glClient.poll(3*time.Millisecond, tt.maxTime) if tt.expectedFail { diff --git a/internal/source/gitlab/gitlab_test.go b/internal/source/gitlab/gitlab_test.go index e6f194ee..bd6b2171 100644 --- a/internal/source/gitlab/gitlab_test.go +++ b/internal/source/gitlab/gitlab_test.go @@ -6,6 +6,7 @@ import ( "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitlab-pages/internal/source/gitlab/api" "gitlab.com/gitlab-org/gitlab-pages/internal/source/gitlab/client" ) @@ -29,6 +30,15 @@ func TestGetDomain(t *testing.T) { require.NotNil(t, err) require.Nil(t, domain) }) + + t.Run("when pages endpoint is unauthorized", func(t *testing.T) { + c := client.StubClient{Lookup: &api.Lookup{Error: client.ErrUnauthorizedAPI}} + source := Gitlab{client: c} + + _, err := source.GetDomain("test") + require.EqualError(t, err, client.ErrUnauthorizedAPI.Error()) + require.False(t, source.IsReady()) + }) } func TestResolve(t *testing.T) { |