Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaime Martinez <jmartinez@gitlab.com>2021-04-01 02:15:27 +0300
committerJaime Martinez <jmartinez@gitlab.com>2021-04-01 02:15:27 +0300
commit5185001f2e73bfa980f53b5192a623d0f902da33 (patch)
tree462815826bc898026d1800417b628a9997d07190
parent486512e8f45bdf689440c4309f57523b349ffad0 (diff)
parent9e3d9b7f24a11d67c77d55d7d9b2ae2e3b7040e4 (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.go5
-rw-r--r--internal/source/gitlab/gitlab.go3
-rw-r--r--internal/source/gitlab/gitlab_poll_test.go3
-rw-r--r--internal/source/gitlab/gitlab_test.go10
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) {