summaryrefslogtreecommitdiff
path: root/go/internal/config/config_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/internal/config/config_test.go')
-rw-r--r--go/internal/config/config_test.go94
1 files changed, 68 insertions, 26 deletions
diff --git a/go/internal/config/config_test.go b/go/internal/config/config_test.go
index 6640f42..e1e49d7 100644
--- a/go/internal/config/config_test.go
+++ b/go/internal/config/config_test.go
@@ -2,63 +2,105 @@ package config
import (
"fmt"
- "strings"
+ "path"
"testing"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+ "gitlab.com/gitlab-org/gitlab-shell/go/internal/testhelper"
+)
+
+const (
+ customSecret = "custom/my-contents-is-secret"
+)
+
+var (
+ testRoot = testhelper.TestRoot
)
func TestParseConfig(t *testing.T) {
- testRoot := "/foo/bar"
+ cleanup, err := testhelper.PrepareTestRootDir()
+ require.NoError(t, err)
+ defer cleanup()
+
testCases := []struct {
yaml string
path string
format string
gitlabUrl string
migration MigrationConfig
+ secret string
}{
- {path: "/foo/bar/gitlab-shell.log", format: "text"},
- {yaml: "log_file: my-log.log", path: "/foo/bar/my-log.log", format: "text"},
- {yaml: "log_file: /qux/my-log.log", path: "/qux/my-log.log", format: "text"},
- {yaml: "log_format: json", path: "/foo/bar/gitlab-shell.log", format: "json"},
+ {
+ path: path.Join(testRoot, "gitlab-shell.log"),
+ format: "text",
+ secret: "default-secret-content",
+ },
+ {
+ yaml: "log_file: my-log.log",
+ path: path.Join(testRoot, "my-log.log"),
+ format: "text",
+ secret: "default-secret-content",
+ },
+ {
+ yaml: "log_file: /qux/my-log.log",
+ path: "/qux/my-log.log",
+ format: "text",
+ secret: "default-secret-content",
+ },
+ {
+ yaml: "log_format: json",
+ path: path.Join(testRoot, "gitlab-shell.log"),
+ format: "json",
+ secret: "default-secret-content",
+ },
{
yaml: "migration:\n enabled: true\n features:\n - foo\n - bar",
- path: "/foo/bar/gitlab-shell.log",
+ path: path.Join(testRoot, "gitlab-shell.log"),
format: "text",
migration: MigrationConfig{Enabled: true, Features: []string{"foo", "bar"}},
+ secret: "default-secret-content",
},
{
yaml: "gitlab_url: http+unix://%2Fpath%2Fto%2Fgitlab%2Fgitlab.socket",
- path: "/foo/bar/gitlab-shell.log",
+ path: path.Join(testRoot, "gitlab-shell.log"),
format: "text",
gitlabUrl: "http+unix:///path/to/gitlab/gitlab.socket",
+ secret: "default-secret-content",
+ },
+ {
+ yaml: fmt.Sprintf("secret_file: %s", customSecret),
+ path: path.Join(testRoot, "gitlab-shell.log"),
+ format: "text",
+ secret: "custom-secret-content",
+ },
+ {
+ yaml: fmt.Sprintf("secret_file: %s", path.Join(testRoot, customSecret)),
+ path: path.Join(testRoot, "gitlab-shell.log"),
+ format: "text",
+ secret: "custom-secret-content",
+ },
+ {
+ yaml: "secret: an inline secret",
+ path: path.Join(testRoot, "gitlab-shell.log"),
+ format: "text",
+ secret: "an inline secret",
},
}
for _, tc := range testCases {
t.Run(fmt.Sprintf("yaml input: %q", tc.yaml), func(t *testing.T) {
cfg := Config{RootDir: testRoot}
- if err := parseConfig([]byte(tc.yaml), &cfg); err != nil {
- t.Fatal(err)
- }
-
- if cfg.Migration.Enabled != tc.migration.Enabled {
- t.Fatalf("migration.enabled: expected %v, got %v", tc.migration.Enabled, cfg.Migration.Enabled)
- }
-
- if strings.Join(cfg.Migration.Features, ":") != strings.Join(tc.migration.Features, ":") {
- t.Fatalf("migration.features: expected %#v, got %#v", tc.migration.Features, cfg.Migration.Features)
- }
-
- if cfg.LogFile != tc.path {
- t.Fatalf("expected %q, got %q", tc.path, cfg.LogFile)
- }
- if cfg.LogFormat != tc.format {
- t.Fatalf("expected %q, got %q", tc.format, cfg.LogFormat)
- }
+ err := parseConfig([]byte(tc.yaml), &cfg)
+ require.NoError(t, err)
+ assert.Equal(t, tc.migration.Enabled, cfg.Migration.Enabled, "migration.enabled not equal")
+ assert.Equal(t, tc.migration.Features, cfg.Migration.Features, "migration.features not equal")
+ assert.Equal(t, tc.path, cfg.LogFile)
+ assert.Equal(t, tc.format, cfg.LogFormat)
assert.Equal(t, tc.gitlabUrl, cfg.GitlabUrl)
+ assert.Equal(t, tc.secret, cfg.Secret)
})
}
}