All checks were successful
/ DCO (pull_request) Successful in 36s
/ Builds (pull_request) Successful in 1m38s
/ Vulncheck (pull_request) Successful in 1m37s
/ OCI image (pull_request) Successful in 2m16s
/ Lint (pull_request) Successful in 2m40s
/ Tests (pull_request) Successful in 1m26s
/ Vulncheck (push) Successful in 1m18s
/ Builds (push) Successful in 1m14s
/ OCI image (push) Successful in 2m0s
/ Lint (push) Successful in 2m14s
/ Tests (push) Successful in 1m35s
Signed-off-by: Alex Vanin <a.vanin@yadro.com> Signed-off-by: Pavel Pogodaev <p.pogodaev@yadro.com>
45 lines
2 KiB
Go
45 lines
2 KiB
Go
package handler
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api/errors"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestVersioningWithMFADelete(t *testing.T) {
|
|
bktName := "bucket-name"
|
|
deviceName := "device"
|
|
|
|
hc := prepareHandlerContext(t)
|
|
createBucket(hc, bktName)
|
|
key := createMFADevice(hc, bktName, deviceName)
|
|
|
|
putBucketVersioningMFADeleteErr(hc, bktName, "", "Enabled", generateMFAHeader(key, deviceName), errors.GetAPIError(errors.ErrVersioningNotSpecified))
|
|
putBucketVersioningMFADeleteErr(hc, bktName, "", "", "", errors.GetAPIError(errors.ErrVersioningNotSpecified))
|
|
|
|
// set MFA Delete status
|
|
putBucketVersioningMFADelete(hc, bktName, "Suspended", "Enabled", generateMFAHeader(key, deviceName))
|
|
require.Equal(t, "Enabled", getBucketVersioning(hc, bktName).MfaDelete)
|
|
require.Equal(t, "Suspended", getBucketVersioning(hc, bktName).Status)
|
|
|
|
// try to change versioning without MFA Header
|
|
putBucketVersioningMFADeleteErr(hc, bktName, "Enabled", "Enabled", "", errors.GetAPIError(errors.ErrInvalidMFAHeader))
|
|
require.Equal(t, "Enabled", getBucketVersioning(hc, bktName).MfaDelete)
|
|
require.Equal(t, "Suspended", getBucketVersioning(hc, bktName).Status)
|
|
|
|
// change versioning with MFA successfully
|
|
putBucketVersioningMFADelete(hc, bktName, "Enabled", "Enabled", generateMFAHeader(key, deviceName))
|
|
require.Equal(t, "Enabled", getBucketVersioning(hc, bktName).MfaDelete)
|
|
require.Equal(t, "Enabled", getBucketVersioning(hc, bktName).Status)
|
|
|
|
// try to disable MFA without MFA Header
|
|
putBucketVersioningMFADeleteErr(hc, bktName, "Enabled", "Disabled", "", errors.GetAPIError(errors.ErrInvalidMFAHeader))
|
|
require.Equal(t, "Enabled", getBucketVersioning(hc, bktName).MfaDelete)
|
|
require.Equal(t, "Enabled", getBucketVersioning(hc, bktName).Status)
|
|
|
|
// try to disable MFA successfully
|
|
putBucketVersioningMFADelete(hc, bktName, "Enabled", "Disabled", generateMFAHeader(key, deviceName))
|
|
require.Equal(t, "Disabled", getBucketVersioning(hc, bktName).MfaDelete)
|
|
require.Equal(t, "Enabled", getBucketVersioning(hc, bktName).Status)
|
|
}
|