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:
authorStan Hu <stanhu@gmail.com>2022-07-26 02:04:05 +0300
committerStan Hu <stanhu@gmail.com>2022-07-26 02:12:43 +0300
commit5ed5056a252a004662aff335ecef9642715e72ed (patch)
treeb650dde65191b5ceb7632d675012a9906e5d6df4
parent4d2b5871703931acb597b414d26b2e7835bad5b5 (diff)
Refactor: move test cache config into testhelperssh-test-cache-config-helper
This reduces some code duplication. Closes https://gitlab.com/gitlab-org/gitlab-pages/-/issues/799
-rw-r--r--internal/source/gitlab/cache/cache_test.go16
-rw-r--r--internal/source/gitlab/cache/entry_test.go3
-rw-r--r--internal/source/gitlab/gitlab_test.go16
-rw-r--r--internal/testhelpers/testhelpers.go12
4 files changed, 21 insertions, 26 deletions
diff --git a/internal/source/gitlab/cache/cache_test.go b/internal/source/gitlab/cache/cache_test.go
index aad357ae..f42e3a76 100644
--- a/internal/source/gitlab/cache/cache_test.go
+++ b/internal/source/gitlab/cache/cache_test.go
@@ -12,17 +12,9 @@ import (
"gitlab.com/gitlab-org/gitlab-pages/internal/config"
"gitlab.com/gitlab-org/gitlab-pages/internal/source/gitlab/api"
+ "gitlab.com/gitlab-org/gitlab-pages/internal/testhelpers"
)
-var testCacheConfig = config.Cache{
- CacheExpiry: time.Second,
- CacheCleanupInterval: time.Second / 2,
- EntryRefreshTimeout: time.Second / 2,
- RetrievalTimeout: time.Second,
- MaxRetrievalInterval: time.Second / 3,
- MaxRetrievalRetries: 3,
-}
-
type clientMock struct {
counter uint64
lookups chan uint64
@@ -54,7 +46,7 @@ func withTestCache(config resolverConfig, cacheConfig *config.Cache, block func(
failure: config.failure,
}
if cacheConfig == nil {
- cacheConfig = &testCacheConfig
+ cacheConfig = &testhelpers.TestCacheConfig
}
cache := NewCache(resolver, cacheConfig)
@@ -221,7 +213,7 @@ func TestResolve(t *testing.T) {
})
t.Run("when retrieval failed with an error", func(t *testing.T) {
- cc := testCacheConfig
+ cc := testhelpers.TestCacheConfig
cc.MaxRetrievalInterval = 0
err := errors.New("500 error")
@@ -234,7 +226,7 @@ func TestResolve(t *testing.T) {
})
t.Run("when retrieval failed because of an internal retriever context timeout", func(t *testing.T) {
- cc := testCacheConfig
+ cc := testhelpers.TestCacheConfig
cc.RetrievalTimeout = 0
withTestCache(resolverConfig{}, &cc, func(cache *Cache, resolver *clientMock) {
diff --git a/internal/source/gitlab/cache/entry_test.go b/internal/source/gitlab/cache/entry_test.go
index 2ba26fd2..e928e990 100644
--- a/internal/source/gitlab/cache/entry_test.go
+++ b/internal/source/gitlab/cache/entry_test.go
@@ -12,6 +12,7 @@ import (
"gitlab.com/gitlab-org/gitlab-pages/internal/config"
"gitlab.com/gitlab-org/gitlab-pages/internal/domain"
"gitlab.com/gitlab-org/gitlab-pages/internal/source/gitlab/api"
+ "gitlab.com/gitlab-org/gitlab-pages/internal/testhelpers"
)
func TestIsUpToDateAndNeedsRefresh(t *testing.T) {
@@ -54,7 +55,7 @@ func TestIsUpToDateAndNeedsRefresh(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
- entry := newCacheEntry("my.gitlab.com", testCacheConfig.EntryRefreshTimeout, testCacheConfig.CacheExpiry)
+ entry := newCacheEntry("my.gitlab.com", testhelpers.TestCacheConfig.EntryRefreshTimeout, testhelpers.TestCacheConfig.CacheExpiry)
if tt.resolved {
entry.response = &api.Lookup{}
}
diff --git a/internal/source/gitlab/gitlab_test.go b/internal/source/gitlab/gitlab_test.go
index 5a63edf2..4cfde3b1 100644
--- a/internal/source/gitlab/gitlab_test.go
+++ b/internal/source/gitlab/gitlab_test.go
@@ -8,27 +8,17 @@ import (
"os"
"sync"
"testing"
- "time"
"github.com/golang/mock/gomock"
"github.com/stretchr/testify/require"
- "gitlab.com/gitlab-org/gitlab-pages/internal/config"
"gitlab.com/gitlab-org/gitlab-pages/internal/source/gitlab/api"
"gitlab.com/gitlab-org/gitlab-pages/internal/source/gitlab/cache"
"gitlab.com/gitlab-org/gitlab-pages/internal/source/gitlab/client"
"gitlab.com/gitlab-org/gitlab-pages/internal/source/gitlab/mock"
+ "gitlab.com/gitlab-org/gitlab-pages/internal/testhelpers"
)
-var testCacheConfig = config.Cache{
- CacheExpiry: time.Second,
- CacheCleanupInterval: time.Second / 2,
- EntryRefreshTimeout: time.Second / 2,
- RetrievalTimeout: time.Second,
- MaxRetrievalInterval: time.Second / 3,
- MaxRetrievalRetries: 3,
-}
-
type lookupPathTest struct {
file string
target string
@@ -171,7 +161,7 @@ func TestResolveLookupPathsConcurrentNetRequests(t *testing.T) {
t.Run(name, func(t *testing.T) {
wg := &sync.WaitGroup{}
mockClient := NewMockClient(t, test.file, nil, true)
- cache := cache.NewCache(mockClient, &testCacheConfig)
+ cache := cache.NewCache(mockClient, &testhelpers.TestCacheConfig)
for i := 0; i < 3; i++ {
go sendResolveRequest(t, wg, cache, test)
@@ -207,7 +197,7 @@ func TestResolveLookupPathsOrderDoesNotMatter(t *testing.T) {
for name, test := range tests {
t.Run(name, func(t *testing.T) {
mockClient := NewMockClient(t, test.file, nil, true)
- cache := cache.NewCache(mockClient, &testCacheConfig)
+ cache := cache.NewCache(mockClient, &testhelpers.TestCacheConfig)
source := Gitlab{client: cache, enableDisk: true}
request := httptest.NewRequest(http.MethodGet, test.target, nil)
diff --git a/internal/testhelpers/testhelpers.go b/internal/testhelpers/testhelpers.go
index fdd3e7d4..ccae0557 100644
--- a/internal/testhelpers/testhelpers.go
+++ b/internal/testhelpers/testhelpers.go
@@ -8,11 +8,23 @@ import (
"net/url"
"os"
"testing"
+ "time"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/require"
+
+ "gitlab.com/gitlab-org/gitlab-pages/internal/config"
)
+var TestCacheConfig = config.Cache{
+ CacheExpiry: time.Second,
+ CacheCleanupInterval: time.Second / 2,
+ EntryRefreshTimeout: time.Second / 2,
+ RetrievalTimeout: time.Second,
+ MaxRetrievalInterval: time.Second / 3,
+ MaxRetrievalRetries: 3,
+}
+
// AssertRedirectTo asserts that handler redirects to particular URL
func AssertRedirectTo(t *testing.T, handler http.HandlerFunc, method string,
url string, values url.Values, expectedURL string) {