diff options
Diffstat (limited to 'workhorse/internal/upload/object_storage_preparer_test.go')
-rw-r--r-- | workhorse/internal/upload/object_storage_preparer_test.go | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/workhorse/internal/upload/object_storage_preparer_test.go b/workhorse/internal/upload/object_storage_preparer_test.go new file mode 100644 index 00000000000..613b6071275 --- /dev/null +++ b/workhorse/internal/upload/object_storage_preparer_test.go @@ -0,0 +1,62 @@ +package upload_test + +import ( + "testing" + + "gocloud.dev/blob" + + "gitlab.com/gitlab-org/gitlab-workhorse/internal/api" + "gitlab.com/gitlab-org/gitlab-workhorse/internal/config" + "gitlab.com/gitlab-org/gitlab-workhorse/internal/upload" + + "github.com/stretchr/testify/require" +) + +func TestPrepareWithS3Config(t *testing.T) { + creds := config.S3Credentials{ + AwsAccessKeyID: "test-key", + AwsSecretAccessKey: "test-secret", + } + + c := config.Config{ + ObjectStorageCredentials: config.ObjectStorageCredentials{ + Provider: "AWS", + S3Credentials: creds, + }, + ObjectStorageConfig: config.ObjectStorageConfig{ + URLMux: new(blob.URLMux), + }, + } + + r := &api.Response{ + RemoteObject: api.RemoteObject{ + ID: "the ID", + UseWorkhorseClient: true, + ObjectStorage: &api.ObjectStorageParams{ + Provider: "AWS", + }, + }, + } + + p := upload.NewObjectStoragePreparer(c) + opts, v, err := p.Prepare(r) + + require.NoError(t, err) + require.True(t, opts.ObjectStorageConfig.IsAWS()) + require.True(t, opts.UseWorkhorseClient) + require.Equal(t, creds, opts.ObjectStorageConfig.S3Credentials) + require.NotNil(t, opts.ObjectStorageConfig.URLMux) + require.Equal(t, nil, v) +} + +func TestPrepareWithNoConfig(t *testing.T) { + c := config.Config{} + r := &api.Response{RemoteObject: api.RemoteObject{ID: "id"}} + p := upload.NewObjectStoragePreparer(c) + opts, v, err := p.Prepare(r) + + require.NoError(t, err) + require.False(t, opts.UseWorkhorseClient) + require.Nil(t, v) + require.Nil(t, opts.ObjectStorageConfig.URLMux) +} |