|
4 | 4 | "context"
|
5 | 5 | "fmt"
|
6 | 6 | "os"
|
| 7 | + "regexp" |
7 | 8 | "testing"
|
8 | 9 | "time"
|
9 | 10 |
|
@@ -32,6 +33,33 @@ func TestAccEncryptionAtRestPrivateEndpoint_Azure_basic(t *testing.T) {
|
32 | 33 | resource.Test(t, *basicTestCaseAzure(t))
|
33 | 34 | }
|
34 | 35 |
|
| 36 | +func TestAccEncryptionAtRestPrivateEndpoint_createTimeoutWithDeleteOnCreate(t *testing.T) { |
| 37 | + var ( |
| 38 | + projectID = os.Getenv("MONGODB_ATLAS_PROJECT_EAR_PE_AWS_ID") |
| 39 | + createTimeout = "1s" |
| 40 | + deleteOnCreateTimeout = true |
| 41 | + awsKms = &admin.AWSKMSConfiguration{ |
| 42 | + Enabled: conversion.Pointer(true), |
| 43 | + RequirePrivateNetworking: conversion.Pointer(true), |
| 44 | + AccessKeyID: conversion.StringPtr(os.Getenv("AWS_ACCESS_KEY_ID")), |
| 45 | + SecretAccessKey: conversion.StringPtr(os.Getenv("AWS_SECRET_ACCESS_KEY")), |
| 46 | + CustomerMasterKeyID: conversion.StringPtr(os.Getenv("AWS_CUSTOMER_MASTER_KEY_ID")), |
| 47 | + Region: conversion.StringPtr(os.Getenv("AWS_REGION")), |
| 48 | + } |
| 49 | + region = conversion.AWSRegionToMongoDBRegion(os.Getenv("AWS_REGION")) |
| 50 | + ) |
| 51 | + resource.ParallelTest(t, resource.TestCase{ |
| 52 | + PreCheck: func() { acc.PreCheckEncryptionAtRestEnvAWS(t) }, |
| 53 | + ProtoV6ProviderFactories: acc.TestAccProviderV6Factories, |
| 54 | + Steps: []resource.TestStep{ |
| 55 | + { |
| 56 | + Config: configAWSBasicWithTimeout(projectID, awsKms, region, acc.TimeoutConfig(&createTimeout, nil, nil, true), &deleteOnCreateTimeout), |
| 57 | + ExpectError: regexp.MustCompile("will run cleanup because delete_on_create_timeout is true"), |
| 58 | + }, |
| 59 | + }, |
| 60 | + }) |
| 61 | +} |
| 62 | + |
35 | 63 | func basicTestCaseAzure(tb testing.TB) *resource.TestCase {
|
36 | 64 | tb.Helper()
|
37 | 65 | var (
|
@@ -316,19 +344,33 @@ func checkBasic(projectID, cloudProvider, region string, expectApproved bool) re
|
316 | 344 | }
|
317 | 345 |
|
318 | 346 | func configAWSBasic(projectID string, awsKms *admin.AWSKMSConfiguration, region string) string {
|
| 347 | + return configAWSBasicWithTimeout(projectID, awsKms, region, "", nil) |
| 348 | +} |
| 349 | + |
| 350 | +func configAWSBasicWithTimeout(projectID string, awsKms *admin.AWSKMSConfiguration, region, timeoutConfig string, deleteOnCreateTimeout *bool) string { |
319 | 351 | encryptionAtRestConfig := acc.ConfigAwsKms(projectID, awsKms, false, true, false)
|
| 352 | + |
| 353 | + deleteOnCreateTimeoutConfig := "" |
| 354 | + if deleteOnCreateTimeout != nil { |
| 355 | + deleteOnCreateTimeoutConfig = fmt.Sprintf(` |
| 356 | + delete_on_create_timeout = %[1]t |
| 357 | + `, *deleteOnCreateTimeout) |
| 358 | + } |
| 359 | + |
320 | 360 | config := fmt.Sprintf(`
|
321 | 361 | %[1]s
|
322 | 362 |
|
323 | 363 | resource "mongodbatlas_encryption_at_rest_private_endpoint" "test" {
|
324 | 364 | project_id = mongodbatlas_encryption_at_rest.test.project_id
|
325 | 365 | cloud_provider = "AWS"
|
326 | 366 | region_name = %[2]q
|
| 367 | + %[3]s |
| 368 | + %[4]s |
327 | 369 | }
|
328 | 370 |
|
329 |
| - %[3]s |
| 371 | + %[5]s |
330 | 372 |
|
331 |
| - `, encryptionAtRestConfig, region, configDS()) |
| 373 | + `, encryptionAtRestConfig, region, deleteOnCreateTimeoutConfig, timeoutConfig, configDS()) |
332 | 374 |
|
333 | 375 | return config
|
334 | 376 | }
|
|
0 commit comments