Skip to content

Commit 2ed55ca

Browse files
committed
fix sweeper delete logic; add disappears test
1 parent ad1103e commit 2ed55ca

File tree

1 file changed

+35
-7
lines changed

1 file changed

+35
-7
lines changed

aws/resource_aws_timestreamwrite_database_test.go

+35-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package aws
22

33
import (
4+
"context"
45
"fmt"
56
"log"
67
"regexp"
@@ -10,6 +11,7 @@ import (
1011
"github.com/aws/aws-sdk-go/service/timestreamwrite"
1112
"github.com/hashicorp/aws-sdk-go-base/tfawserr"
1213
"github.com/hashicorp/go-multierror"
14+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1315
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
1416
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1517
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -28,12 +30,13 @@ func testSweepTimestreamWriteDatabases(region string) error {
2830
return fmt.Errorf("error getting client: %s", err)
2931
}
3032
conn := client.(*AWSClient).timestreamwriteconn
33+
ctx := context.Background()
3134

3235
var sweeperErrs *multierror.Error
3336

3437
input := &timestreamwrite.ListDatabasesInput{}
3538

36-
err = conn.ListDatabasesPages(input, func(page *timestreamwrite.ListDatabasesOutput, lastPage bool) bool {
39+
err = conn.ListDatabasesPagesWithContext(ctx, input, func(page *timestreamwrite.ListDatabasesOutput, lastPage bool) bool {
3740
if page == nil {
3841
return !lastPage
3942
}
@@ -49,13 +52,16 @@ func testSweepTimestreamWriteDatabases(region string) error {
4952
d := r.Data(nil)
5053
d.SetId(dbName)
5154

52-
err := r.Delete(d, client)
55+
diags := r.DeleteWithoutTimeout(ctx, d, client)
5356

54-
if err != nil {
55-
sweeperErr := fmt.Errorf("error deleting Timestream Database (%s): %w", dbName, err)
56-
log.Printf("[ERROR] %s", sweeperErr)
57-
sweeperErrs = multierror.Append(sweeperErrs, sweeperErr)
58-
continue
57+
if diags != nil && diags.HasError() {
58+
for _, d := range diags {
59+
if d.Severity == diag.Error {
60+
sweeperErr := fmt.Errorf("error deleting Timestream Database (%s): %s", dbName, d.Summary)
61+
log.Printf("[ERROR] %s", sweeperErr)
62+
sweeperErrs = multierror.Append(sweeperErrs, sweeperErr)
63+
}
64+
}
5965
}
6066
}
6167

@@ -103,6 +109,28 @@ func TestAccAWSTimestreamWriteDatabase_basic(t *testing.T) {
103109
})
104110
}
105111

112+
func TestAccAWSTimestreamWriteDatabase_disappears(t *testing.T) {
113+
resourceName := "aws_timestreamwrite_database.test"
114+
rName := acctest.RandomWithPrefix("tf-acc-test")
115+
116+
resource.ParallelTest(t, resource.TestCase{
117+
PreCheck: func() { testAccPreCheck(t); testAccPreCheckAWSTimestreamWrite(t) },
118+
ErrorCheck: testAccErrorCheck(t, timestreamwrite.EndpointsID),
119+
Providers: testAccProviders,
120+
CheckDestroy: testAccCheckAWSTimestreamWriteDatabaseDestroy,
121+
Steps: []resource.TestStep{
122+
{
123+
Config: testAccAWSTimestreamWriteDatabaseConfigBasic(rName),
124+
Check: resource.ComposeTestCheckFunc(
125+
testAccCheckAWSTimestreamWriteDatabaseExists(resourceName),
126+
testAccCheckResourceDisappears(testAccProvider, resourceAwsTimestreamWriteDatabase(), resourceName),
127+
),
128+
ExpectNonEmptyPlan: true,
129+
},
130+
},
131+
})
132+
}
133+
106134
func TestAccAWSTimestreamWriteDatabase_kmsKey(t *testing.T) {
107135
resourceName := "aws_timestreamwrite_database.test"
108136
rName := acctest.RandomWithPrefix("tf-acc-test")

0 commit comments

Comments
 (0)