Skip to content

Commit e02f8f1

Browse files
authored
chore: Avoids null pointer error when region_configs are null in tpf advanced_cluster (#3013)
* test: Add validation for null region_configs in advanced cluster schema * fix: Add nil check for regionConfigs in ValidateList method * test: Ensure TestAccAdvancedCluster_ValidationErrors is run
1 parent cb6065f commit e02f8f1

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

internal/service/advancedclustertpf/schema_test.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,18 @@ import (
1010
"github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/acc"
1111
)
1212

13-
func TestAdvancedCluster_ValidationErrors(t *testing.T) {
13+
func TestAccAdvancedCluster_ValidationErrors(t *testing.T) {
1414
const (
1515
projectID = "111111111111111111111111"
1616
clusterName = "test"
1717
)
1818
resource.ParallelTest(t, resource.TestCase{
1919
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
2020
Steps: []resource.TestStep{
21+
{
22+
Config: nullRegionConfigs, // can happen when using moved block, panic: runtime error: invalid memory address or nil pointer dereference
23+
ExpectError: regexp.MustCompile("Missing Configuration for Required Attribute"),
24+
},
2125
{
2226
Config: acc.ConvertAdvancedClusterToSchemaV2(t, true, invalidRegionConfigsPriorities),
2327
ExpectError: regexp.MustCompile("priority values in region_configs must be in descending order"),
@@ -154,3 +158,15 @@ resource "mongodbatlas_advanced_cluster" "test" {
154158
}
155159
}
156160
`
161+
var nullRegionConfigs = `
162+
resource "mongodbatlas_advanced_cluster" "test" {
163+
project_id = "111111111111111111111111"
164+
name = "test-acc-tf-c-2670522663699021050"
165+
cluster_type = "REPLICASET"
166+
backup_enabled = false
167+
168+
replication_specs = [{
169+
region_configs = null
170+
}]
171+
}
172+
`

internal/service/advancedclustertpf/validate_schema.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func (v RegionSpecPriorityOrderDecreasingValidator) MarkdownDescription(_ contex
9595
func (v RegionSpecPriorityOrderDecreasingValidator) ValidateList(ctx context.Context, req validator.ListRequest, resp *validator.ListResponse) {
9696
diags := &resp.Diagnostics
9797
regionConfigs := newCloudRegionConfig20240805(ctx, req.ConfigValue, diags)
98-
if diags.HasError() {
98+
if diags.HasError() || regionConfigs == nil {
9999
return
100100
}
101101
configs := *regionConfigs

0 commit comments

Comments
 (0)