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-29 08:43:33 +0300
committerJaime Martinez <jmartinez@gitlab.com>2021-04-29 08:43:33 +0300
commit890d01033ab17ea5a6208450ced595d12f4ce195 (patch)
tree36e0e6a7901ab66cc4c4aeecec07d05fc1eaeb13 /internal/source/domains_test.go
parent4ff61e374a7dbfa51fee91799f11197e0f8d53f7 (diff)
Use config package in GitLab client
Uses the `internal/config/` client inside the `internal/source/gitlab/` package which makes it easier to extend the configuration. This is an iteration of https://gitlab.com/gitlab-org/gitlab-pages/-/issues/543. Changelog: other
Diffstat (limited to 'internal/source/domains_test.go')
-rw-r--r--internal/source/domains_test.go95
1 files changed, 41 insertions, 54 deletions
diff --git a/internal/source/domains_test.go b/internal/source/domains_test.go
index db9c2c23..a9404eef 100644
--- a/internal/source/domains_test.go
+++ b/internal/source/domains_test.go
@@ -11,105 +11,92 @@ import (
"gitlab.com/gitlab-org/gitlab-pages/internal/source/disk"
)
-type sourceConfig struct {
- api string
- secret string
- domainSource string
-}
-
-func (c sourceConfig) InternalGitLabServerURL() string {
- return c.api
-}
-
-func (c sourceConfig) GitlabAPISecret() []byte {
- return []byte(c.secret)
-}
-func (c sourceConfig) GitlabClientConnectionTimeout() time.Duration {
- return 10 * time.Second
-}
-
-func (c sourceConfig) GitlabJWTTokenExpiry() time.Duration {
- return 30 * time.Second
-}
-
-func (c sourceConfig) DomainConfigSource() string {
- return c.domainSource
-}
-func (c sourceConfig) Cache() *config.Cache {
- return &config.Cache{
- CacheExpiry: 10 * time.Minute,
- CacheCleanupInterval: time.Minute,
- EntryRefreshTimeout: 60 * time.Second,
- RetrievalTimeout: 30 * time.Second,
- MaxRetrievalInterval: time.Second,
- MaxRetrievalRetries: 3,
+func TestNewDomains(t *testing.T) {
+ validCfg := config.GitLab{
+ InternalServer: "https://gitlab.com",
+ APISecretKey: []byte("abc"),
+ ClientHTTPTimeout: time.Second,
+ JWTTokenExpiration: time.Second,
}
-}
-func TestNewDomains(t *testing.T) {
tests := []struct {
name string
- sourceConfig sourceConfig
+ source string
+ config config.GitLab
expectedErr string
expectGitlabNil bool
expectDiskNil bool
}{
{
- name: "no_source_config",
- sourceConfig: sourceConfig{},
- expectedErr: "invalid option for -domain-config-source: \"\"",
+ name: "no_source_config",
+ source: "",
+ expectedErr: "invalid option for -domain-config-source: \"\"",
},
{
- name: "invalid_source_config",
- sourceConfig: sourceConfig{domainSource: "invalid"},
- expectedErr: "invalid option for -domain-config-source: \"invalid\"",
+ name: "invalid_source_config",
+ source: "invalid",
+ expectedErr: "invalid option for -domain-config-source: \"invalid\"",
},
{
name: "disk_source",
- sourceConfig: sourceConfig{domainSource: "disk"},
+ source: "disk",
expectGitlabNil: true,
expectDiskNil: false,
},
{
name: "auto_without_api_config",
- sourceConfig: sourceConfig{domainSource: "auto"},
+ source: "auto",
expectGitlabNil: true,
expectDiskNil: false,
},
{
name: "auto_with_api_config",
- sourceConfig: sourceConfig{api: "https://gitlab.com", secret: "abc", domainSource: "auto"},
+ source: "auto",
+ config: validCfg,
expectGitlabNil: false,
expectDiskNil: false,
},
{
name: "gitlab_source_success",
- sourceConfig: sourceConfig{api: "https://gitlab.com", secret: "abc", domainSource: "gitlab"},
+ source: "gitlab",
+ config: validCfg,
expectDiskNil: true,
},
{
- name: "gitlab_source_no_url",
- sourceConfig: sourceConfig{api: "", secret: "abc", domainSource: "gitlab"},
- expectedErr: "GitLab API URL or API secret has not been provided",
+ name: "gitlab_source_no_url",
+ source: "gitlab",
+ config: func() config.GitLab {
+ cfg := validCfg
+ cfg.InternalServer = ""
+
+ return cfg
+ }(),
+ expectedErr: "GitLab API URL or API secret has not been provided",
},
{
- name: "gitlab_source_no_secret",
- sourceConfig: sourceConfig{api: "https://gitlab.com", secret: "", domainSource: "gitlab"},
- expectedErr: "GitLab API URL or API secret has not been provided",
+ name: "gitlab_source_no_secret",
+ source: "gitlab",
+ config: func() config.GitLab {
+ cfg := validCfg
+ cfg.APISecretKey = []byte{}
+
+ return cfg
+ }(),
+ expectedErr: "GitLab API URL or API secret has not been provided",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
- domains, err := NewDomains(tt.sourceConfig)
+ domains, err := NewDomains(tt.source, &tt.config)
if tt.expectedErr != "" {
require.EqualError(t, err, tt.expectedErr)
return
}
require.NoError(t, err)
- require.Equal(t, tt.expectGitlabNil, domains.gitlab == nil)
- require.Equal(t, tt.expectDiskNil, domains.disk == nil)
+ require.Equal(t, tt.expectGitlabNil, domains.gitlab == nil, "mismatch gitlab nil")
+ require.Equal(t, tt.expectDiskNil, domains.disk == nil, "mismatch disk nil")
})
}
}