Skip to content

Commit e3649cc

Browse files
committed
test: active active test for public endpoints
1 parent c83e051 commit e3649cc

File tree

3 files changed

+49
-2
lines changed

3 files changed

+49
-2
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package provider
2+
3+
import (
4+
"fmt"
5+
"testing"
6+
7+
"github.com/RedisLabs/terraform-provider-rediscloud/provider/utils"
8+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
9+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
10+
)
11+
12+
func TestAccActiveActiveSubscriptionDatabaseBlockPublicEndpoints(t *testing.T) {
13+
14+
utils.AccRequiresEnvVar(t, "EXECUTE_TESTS")
15+
16+
const databaseResource = "rediscloud_active_active_subscription_database.example"
17+
subscriptionName := acctest.RandomWithPrefix(testResourcePrefix)
18+
19+
content := utils.GetTestConfig(t, "./activeactive/testdata/public_endpoint_disabled.tf")
20+
config := fmt.Sprintf(content, subscriptionName)
21+
22+
resource.ParallelTest(t, resource.TestCase{
23+
PreCheck: func() { testAccPreCheck(t); testAccAwsPreExistingCloudAccountPreCheck(t) },
24+
ProviderFactories: providerFactories,
25+
CheckDestroy: testAccCheckActiveActiveSubscriptionDestroy,
26+
Steps: []resource.TestStep{
27+
{
28+
Config: config,
29+
Check: resource.ComposeAggregateTestCheckFunc(
30+
resource.TestCheckResourceAttr(databaseResource, "name", subscriptionName),
31+
resource.TestCheckResourceAttr(databaseResource, "dataset_size_in_gb", "1"),
32+
resource.TestCheckResourceAttr(databaseResource, "global_data_persistence", "aof-every-1-second"),
33+
resource.TestCheckResourceAttr(databaseResource, "global_modules.#", "1"),
34+
resource.TestCheckResourceAttr(databaseResource, "global_modules.0", "RedisJSON"),
35+
resource.TestCheckResourceAttr(databaseResource, "global_alert.#", "1"),
36+
resource.TestCheckResourceAttr(databaseResource, "global_alert.0.name", "dataset-size"),
37+
resource.TestCheckResourceAttr(databaseResource, "global_alert.0.value", "40"),
38+
resource.TestCheckResourceAttr(databaseResource, "global_source_ips.#", "1"),
39+
resource.TestCheckResourceAttr(databaseResource, "global_source_ips.0", "192.168.0.0/16"),
40+
resource.TestCheckResourceAttrSet(databaseResource, "override_region.0.source_ips"),
41+
),
42+
},
43+
},
44+
})
45+
46+
}

provider/datasource_rediscloud_pro_database_block_public_endpoints_test.go renamed to provider/rediscloud_pro_database_block_public_endpoints_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1010
)
1111

12-
func TestAccDataSourceRedisCloudProDatabaseBlockPublicEndpoints(t *testing.T) {
12+
func TestAccRedisCloudProDatabaseBlockPublicEndpoints(t *testing.T) {
1313

1414
utils.AccRequiresEnvVar(t, "EXECUTE_TESTS")
1515

provider/resource_rediscloud_active_active_database.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -560,10 +560,11 @@ func resourceRedisCloudActiveActiveDatabaseRead(ctx context.Context, d *schema.R
560560
"name": region,
561561
}
562562

563-
// Handle source_ips based on subscription's public_endpoint_access setting
563+
// Handle source_ips based on subscription's public_endpoint_access settings
564564
// When public_endpoint_access is false and source_ips is empty, API returns private IP ranges
565565
// When public_endpoint_access is true and source_ips is empty, API returns ["0.0.0.0/0"]
566566
// When source_ips is explicitly set by user, API returns the user's input
567+
// This is to prevent drift in terraform state as API response will differ from what terraform sees
567568
var sourceIPs []string
568569
privateIPRanges := []string{"10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "100.64.0.0/10"}
569570

0 commit comments

Comments
 (0)