Skip to content

Commit d4210a1

Browse files
Codelaxremyleone
andauthored
fix(object): fix cors update test (#1319)
* fix(object): fix cors update test resource name * test(object): simplify cors update test remove manual s3 usage and update state using terraform resource Co-authored-by: Rémy Léone <[email protected]>
1 parent 00f0991 commit d4210a1

File tree

2 files changed

+837
-416
lines changed

2 files changed

+837
-416
lines changed

scaleway/resource_object_bucket_test.go

+29-35
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ func TestAccScalewayObjectBucket_Cors_Update(t *testing.T) {
398398
tt := NewTestTools(t)
399399
defer tt.Cleanup()
400400

401-
resourceName := "scaleway_object_bucket.bucket-destroy-force"
401+
resourceName := "scaleway_object_bucket.bucket-cors-update"
402402
bucketName := sdkacctest.RandomWithPrefix("test-acc-scaleway-object-bucket-cors-update")
403403
resource.ParallelTest(t, resource.TestCase{
404404
PreCheck: func() { testAccPreCheck(t) },
@@ -407,7 +407,7 @@ func TestAccScalewayObjectBucket_Cors_Update(t *testing.T) {
407407
Steps: []resource.TestStep{
408408
{
409409
Config: fmt.Sprintf(`
410-
resource "scaleway_object_bucket" "bucket-destroy-force" {
410+
resource "scaleway_object_bucket" "bucket-cors-update" {
411411
name = %[1]q
412412
cors_rule {
413413
allowed_headers = ["*"]
@@ -431,45 +431,39 @@ func TestAccScalewayObjectBucket_Cors_Update(t *testing.T) {
431431
},
432432
},
433433
),
434-
func(state *terraform.State) error {
435-
rs, ok := state.RootModule().Resources[resourceName]
436-
if !ok {
437-
return fmt.Errorf("not found: %s", resourceName)
438-
}
439-
440-
s3Client, err := newS3ClientFromMeta(tt.Meta)
441-
if err != nil {
442-
return err
443-
}
444-
_, err = s3Client.PutBucketCors(&s3.PutBucketCorsInput{
445-
Bucket: scw.StringPtr(rs.Primary.Attributes["name"]),
446-
CORSConfiguration: &s3.CORSConfiguration{
447-
CORSRules: []*s3.CORSRule{
448-
{
449-
AllowedHeaders: []*string{scw.StringPtr("*")},
450-
AllowedMethods: []*string{scw.StringPtr("GET")},
451-
AllowedOrigins: []*string{scw.StringPtr("https://www.example.com")},
452-
},
453-
},
454-
},
455-
})
456-
if err != nil && !isS3Err(err, "NoSuchCORSConfiguration", "") {
457-
return err
458-
}
459-
return nil
460-
},
461434
),
462-
ExpectNonEmptyPlan: true,
463435
},
464436
{
465-
ResourceName: resourceName,
466-
ImportState: true,
467-
ImportStateVerify: true,
468-
ImportStateVerifyIgnore: []string{"force_destroy", "acl"},
437+
Config: fmt.Sprintf(`
438+
resource "scaleway_object_bucket" "bucket-cors-update" {
439+
name = %[1]q
440+
cors_rule {
441+
allowed_headers = ["*"]
442+
allowed_methods = ["PUT", "POST", "GET"]
443+
allowed_origins = ["https://www.example.com"]
444+
expose_headers = ["x-amz-server-side-encryption", "ETag"]
445+
max_age_seconds = 3000
446+
}
447+
}`, bucketName),
448+
Check: resource.ComposeTestCheckFunc(
449+
testAccCheckScalewayObjectBucketExists(tt, resourceName),
450+
testAccCheckScalewayObjectBucketCors(tt,
451+
resourceName,
452+
[]*s3.CORSRule{
453+
{
454+
AllowedHeaders: []*string{scw.StringPtr("*")},
455+
AllowedMethods: []*string{scw.StringPtr("PUT"), scw.StringPtr("POST"), scw.StringPtr("GET")},
456+
AllowedOrigins: []*string{scw.StringPtr("https://www.example.com")},
457+
ExposeHeaders: []*string{scw.StringPtr("x-amz-server-side-encryption"), scw.StringPtr("ETag")},
458+
MaxAgeSeconds: scw.Int64Ptr(3000),
459+
},
460+
},
461+
),
462+
),
469463
},
470464
{
471465
Config: fmt.Sprintf(`
472-
resource "scaleway_object_bucket" "bucket" {
466+
resource "scaleway_object_bucket" "bucket-cors-update" {
473467
name = %[1]q
474468
cors_rule {
475469
allowed_headers = ["*"]

0 commit comments

Comments
 (0)