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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'workhorse/internal/config/config_test.go')
-rw-r--r--workhorse/internal/config/config_test.go111
1 files changed, 111 insertions, 0 deletions
diff --git a/workhorse/internal/config/config_test.go b/workhorse/internal/config/config_test.go
new file mode 100644
index 00000000000..102b29a0813
--- /dev/null
+++ b/workhorse/internal/config/config_test.go
@@ -0,0 +1,111 @@
+package config
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/require"
+)
+
+const azureConfig = `
+[object_storage]
+provider = "AzureRM"
+
+[object_storage.azurerm]
+azure_storage_account_name = "azuretester"
+azure_storage_access_key = "deadbeef"
+`
+
+func TestLoadEmptyConfig(t *testing.T) {
+ config := ``
+
+ cfg, err := LoadConfig(config)
+ require.NoError(t, err)
+
+ require.Empty(t, cfg.AltDocumentRoot)
+ require.Equal(t, cfg.ImageResizerConfig.MaxFilesize, uint64(250000))
+ require.GreaterOrEqual(t, cfg.ImageResizerConfig.MaxScalerProcs, uint32(2))
+
+ require.Equal(t, ObjectStorageCredentials{}, cfg.ObjectStorageCredentials)
+ require.NoError(t, cfg.RegisterGoCloudURLOpeners())
+}
+
+func TestLoadObjectStorageConfig(t *testing.T) {
+ config := `
+[object_storage]
+provider = "AWS"
+
+[object_storage.s3]
+aws_access_key_id = "minio"
+aws_secret_access_key = "gdk-minio"
+`
+
+ cfg, err := LoadConfig(config)
+ require.NoError(t, err)
+
+ require.NotNil(t, cfg.ObjectStorageCredentials, "Expected object storage credentials")
+
+ expected := ObjectStorageCredentials{
+ Provider: "AWS",
+ S3Credentials: S3Credentials{
+ AwsAccessKeyID: "minio",
+ AwsSecretAccessKey: "gdk-minio",
+ },
+ }
+
+ require.Equal(t, expected, cfg.ObjectStorageCredentials)
+}
+
+func TestRegisterGoCloudURLOpeners(t *testing.T) {
+ cfg, err := LoadConfig(azureConfig)
+ require.NoError(t, err)
+
+ require.NotNil(t, cfg.ObjectStorageCredentials, "Expected object storage credentials")
+
+ expected := ObjectStorageCredentials{
+ Provider: "AzureRM",
+ AzureCredentials: AzureCredentials{
+ AccountName: "azuretester",
+ AccountKey: "deadbeef",
+ },
+ }
+
+ require.Equal(t, expected, cfg.ObjectStorageCredentials)
+ require.Nil(t, cfg.ObjectStorageConfig.URLMux)
+
+ require.NoError(t, cfg.RegisterGoCloudURLOpeners())
+ require.NotNil(t, cfg.ObjectStorageConfig.URLMux)
+
+ require.True(t, cfg.ObjectStorageConfig.URLMux.ValidBucketScheme("azblob"))
+ require.Equal(t, []string{"azblob"}, cfg.ObjectStorageConfig.URLMux.BucketSchemes())
+}
+
+func TestLoadImageResizerConfig(t *testing.T) {
+ config := `
+[image_resizer]
+max_scaler_procs = 200
+max_filesize = 350000
+`
+
+ cfg, err := LoadConfig(config)
+ require.NoError(t, err)
+
+ require.NotNil(t, cfg.ImageResizerConfig, "Expected image resizer config")
+
+ expected := ImageResizerConfig{
+ MaxScalerProcs: 200,
+ MaxFilesize: 350000,
+ }
+
+ require.Equal(t, expected, cfg.ImageResizerConfig)
+}
+
+func TestAltDocumentConfig(t *testing.T) {
+ config := `
+alt_document_root = "/path/to/documents"
+`
+
+ cfg, err := LoadConfig(config)
+ require.NoError(t, err)
+
+ require.Equal(t, "/path/to/documents", cfg.AltDocumentRoot)
+}