diff options
Diffstat (limited to 'workhorse/internal/upload/destination/objectstore/s3_session_test.go')
-rw-r--r-- | workhorse/internal/upload/destination/objectstore/s3_session_test.go | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/workhorse/internal/upload/destination/objectstore/s3_session_test.go b/workhorse/internal/upload/destination/objectstore/s3_session_test.go index 5d57b4f9af8..4bbe38f90ec 100644 --- a/workhorse/internal/upload/destination/objectstore/s3_session_test.go +++ b/workhorse/internal/upload/destination/objectstore/s3_session_test.go @@ -5,6 +5,7 @@ import ( "time" "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/endpoints" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitlab/workhorse/internal/config" @@ -17,7 +18,9 @@ func TestS3SessionSetup(t *testing.T) { sess, err := setupS3Session(credentials, cfg) require.NoError(t, err) - require.Equal(t, aws.StringValue(sess.Config.Region), "us-west-1") + s3Config := sess.ClientConfig(endpoints.S3ServiceID) + require.Equal(t, "https://s3.us-west-1.amazonaws.com", s3Config.Endpoint) + require.Equal(t, "us-west-1", s3Config.SigningRegion) require.True(t, aws.BoolValue(sess.Config.S3ForcePathStyle)) require.Equal(t, len(sessionCache.sessions), 1) @@ -29,6 +32,26 @@ func TestS3SessionSetup(t *testing.T) { ResetS3Session(cfg) } +func TestS3SessionEndpointSetup(t *testing.T) { + credentials := config.S3Credentials{} + const customS3Endpoint = "https://example.com" + const region = "us-west-2" + cfg := config.S3Config{Region: region, PathStyle: true, Endpoint: customS3Endpoint} + + sess, err := setupS3Session(credentials, cfg) + require.NoError(t, err) + + // ClientConfig is what is ultimately used by an S3 client + s3Config := sess.ClientConfig(endpoints.S3ServiceID) + require.Equal(t, customS3Endpoint, s3Config.Endpoint) + require.Equal(t, region, s3Config.SigningRegion) + + stsConfig := sess.ClientConfig(endpoints.StsServiceID) + require.Equal(t, "https://sts.amazonaws.com", stsConfig.Endpoint, "STS should use default endpoint") + + ResetS3Session(cfg) +} + func TestS3SessionExpiry(t *testing.T) { credentials := config.S3Credentials{} cfg := config.S3Config{Region: "us-west-1", PathStyle: true} |