From 1adeda87cae15a1d09afb0d575ffc9226a0fc7da Mon Sep 17 00:00:00 2001 From: EspenAlbert Date: Mon, 25 Mar 2024 11:06:45 +0000 Subject: [PATCH 01/13] test: support converting a test case to a migration test --- .../resource_search_index_migration_test.go | 65 ++----------------- .../searchindex/resource_search_index_test.go | 26 ++++++-- internal/testutil/mig/test_case.go | 24 +++++++ internal/testutil/mig/test_case_test.go | 11 ++++ 4 files changed, 60 insertions(+), 66 deletions(-) create mode 100644 internal/testutil/mig/test_case.go create mode 100644 internal/testutil/mig/test_case_test.go diff --git a/internal/service/searchindex/resource_search_index_migration_test.go b/internal/service/searchindex/resource_search_index_migration_test.go index 789962cf41..0bccc31c61 100644 --- a/internal/service/searchindex/resource_search_index_migration_test.go +++ b/internal/service/searchindex/resource_search_index_migration_test.go @@ -4,68 +4,15 @@ import ( "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" - "github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/acc" "github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/mig" ) -func TestMigSearchIndex_basic(t *testing.T) { - var ( - clusterInfo = acc.GetClusterInfo(t, nil) - indexName = acc.RandomName() - databaseName = acc.RandomName() - config = configBasic(clusterInfo.ProjectIDStr, indexName, databaseName, clusterInfo.ClusterNameStr, clusterInfo.ClusterTerraformStr, false) - ) - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { mig.PreCheckBasic(t) }, - CheckDestroy: acc.CheckDestroySearchIndex, - Steps: []resource.TestStep{ - { - Config: config, - ExternalProviders: mig.ExternalProviders(), - Check: resource.ComposeTestCheckFunc( - checkExists(resourceName), - resource.TestCheckResourceAttr(resourceName, "name", indexName), - resource.TestCheckResourceAttrSet(resourceName, "project_id"), - resource.TestCheckResourceAttr(resourceName, "cluster_name", clusterInfo.ClusterName), - resource.TestCheckResourceAttr(resourceName, "database", databaseName), - resource.TestCheckResourceAttr(resourceName, "collection_name", collectionName), - resource.TestCheckResourceAttr(resourceName, "search_analyzer", searchAnalyzer), - resource.TestCheckResourceAttr(resourceName, "type", ""), - ), - }, - mig.TestStepCheckEmptyPlan(config), - }, - }) +func TestMigSearchIndexRS_basic(t *testing.T) { + testCase := mig.ConvertToMigrationTest(t, basicTestCase(t)) + resource.ParallelTest(t, testCase) } -func TestMigSearchIndex_withVector(t *testing.T) { - var ( - clusterInfo = acc.GetClusterInfo(t, nil) - indexName = acc.RandomName() - databaseName = acc.RandomName() - config = configVector(clusterInfo.ProjectIDStr, indexName, databaseName, clusterInfo.ClusterNameStr, clusterInfo.ClusterTerraformStr) - ) - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { mig.PreCheckBasic(t) }, - CheckDestroy: acc.CheckDestroySearchIndex, - Steps: []resource.TestStep{ - { - Config: config, - ExternalProviders: mig.ExternalProviders(), - Check: resource.ComposeTestCheckFunc( - checkExists(resourceName), - resource.TestCheckResourceAttr(resourceName, "name", indexName), - resource.TestCheckResourceAttrSet(resourceName, "project_id"), - resource.TestCheckResourceAttr(resourceName, "cluster_name", clusterInfo.ClusterName), - resource.TestCheckResourceAttr(resourceName, "database", databaseName), - resource.TestCheckResourceAttr(resourceName, "collection_name", collectionName), - resource.TestCheckResourceAttr(resourceName, "type", "vectorSearch"), - resource.TestCheckResourceAttrSet(resourceName, "fields"), - resource.TestCheckResourceAttrWith(resourceName, "fields", acc.JSONEquals(fieldsJSON)), - ), - }, - mig.TestStepCheckEmptyPlan(config), - }, - }) +func TestMigSearchIndexRS_withVector(t *testing.T) { + testCase := mig.ConvertToMigrationTest(t, basicTestCaseVector(t)) + resource.ParallelTest(t, testCase) } diff --git a/internal/service/searchindex/resource_search_index_test.go b/internal/service/searchindex/resource_search_index_test.go index c4e41ed532..3848c332d4 100644 --- a/internal/service/searchindex/resource_search_index_test.go +++ b/internal/service/searchindex/resource_search_index_test.go @@ -11,7 +11,8 @@ import ( "github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/acc" ) -func TestAccSearchIndex_basic(t *testing.T) { +func basicTestCase(t *testing.T) *resource.TestCase { + t.Helper() var ( clusterInfo = acc.GetClusterInfo(t, nil) indexName = acc.RandomName() @@ -21,7 +22,7 @@ func TestAccSearchIndex_basic(t *testing.T) { ) checks := commonChecks(indexName, indexType, mappingsDynamic, databaseName, clusterInfo) - resource.ParallelTest(t, resource.TestCase{ + return &resource.TestCase{ PreCheck: func() { acc.PreCheckBasic(t) }, ProtoV6ProviderFactories: acc.TestAccProviderV6Factories, CheckDestroy: acc.CheckDestroySearchIndex, @@ -38,7 +39,12 @@ func TestAccSearchIndex_basic(t *testing.T) { ImportStateVerify: true, }, }, - }) + } +} + +func TestAccSearchIndex_basic(t *testing.T) { + basicCase := basicTestCase(t) + resource.ParallelTest(t, *basicCase) } func TestAccSearchIndex_withSearchType(t *testing.T) { @@ -206,8 +212,8 @@ func TestAccSearchIndex_updatedToEmptyMappingsFields(t *testing.T) { }, }) } - -func TestAccSearchIndex_withVector(t *testing.T) { +func basicTestCaseVector(t *testing.T) *resource.TestCase { + t.Helper() var ( clusterInfo = acc.GetClusterInfo(t, nil) indexName = acc.RandomName() @@ -225,7 +231,8 @@ func TestAccSearchIndex_withVector(t *testing.T) { checks = acc.AddAttrSetChecks(resourceName, checks, "project_id") checks = acc.AddAttrSetChecks(datasourceName, checks, "project_id", "index_id") checks = append(checks, resource.TestCheckResourceAttrWith(datasourceName, "fields", acc.JSONEquals(fieldsJSON))) - resource.ParallelTest(t, resource.TestCase{ + + return &resource.TestCase{ PreCheck: func() { acc.PreCheckBasic(t) }, ProtoV6ProviderFactories: acc.TestAccProviderV6Factories, CheckDestroy: acc.CheckDestroySearchIndex, @@ -235,8 +242,13 @@ func TestAccSearchIndex_withVector(t *testing.T) { Check: resource.ComposeTestCheckFunc(checks...), }, }, - }) + } } + +func TestAccSearchIndexRS_withVector(t *testing.T) { + resource.ParallelTest(t, *basicTestCaseVector(t)) +} + func commonChecks(indexName, indexType, mappingsDynamic, databaseName string, clusterInfo acc.ClusterInfo) []resource.TestCheckFunc { attributes := map[string]string{ "name": indexName, diff --git a/internal/testutil/mig/test_case.go b/internal/testutil/mig/test_case.go new file mode 100644 index 0000000000..3909312cf2 --- /dev/null +++ b/internal/testutil/mig/test_case.go @@ -0,0 +1,24 @@ +package mig + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" +) + +func ConvertToMigrationTest(t *testing.T, test *resource.TestCase) resource.TestCase { + t.Helper() + checkLastVersion(t) + + firstStep := test.Steps[0] + firstStep.ExternalProviders = ExternalProviders() + + return resource.TestCase{ + PreCheck: test.PreCheck, + CheckDestroy: test.CheckDestroy, + Steps: []resource.TestStep{ + firstStep, + TestStepCheckEmptyPlan(firstStep.Config), + }, + } +} diff --git a/internal/testutil/mig/test_case_test.go b/internal/testutil/mig/test_case_test.go new file mode 100644 index 0000000000..ab6198e371 --- /dev/null +++ b/internal/testutil/mig/test_case_test.go @@ -0,0 +1,11 @@ +package mig_test + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestConvertToMigration(t *testing.T) { + require.True(t, true, "always true") +} From c670c3a318be140115ddde0608d6fb566f83d4cc Mon Sep 17 00:00:00 2001 From: EspenAlbert Date: Tue, 26 Mar 2024 08:49:39 +0000 Subject: [PATCH 02/13] test: support external providers --- internal/testutil/mig/test_case.go | 26 ++++-- internal/testutil/mig/test_case_test.go | 102 +++++++++++++++++++++++- 2 files changed, 119 insertions(+), 9 deletions(-) diff --git a/internal/testutil/mig/test_case.go b/internal/testutil/mig/test_case.go index 3909312cf2..61bcac9482 100644 --- a/internal/testutil/mig/test_case.go +++ b/internal/testutil/mig/test_case.go @@ -4,21 +4,33 @@ import ( "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/stretchr/testify/require" ) -func ConvertToMigrationTest(t *testing.T, test *resource.TestCase) resource.TestCase { +func ConvertToMigrationTest(t *testing.T, test *resource.TestCase, externalProviders ...map[string]resource.ExternalProvider) resource.TestCase { t.Helper() checkLastVersion(t) - + require.GreaterOrEqual(t, len(test.Steps), 1, "Must have at least 1 test step.") firstStep := test.Steps[0] - firstStep.ExternalProviders = ExternalProviders() + if len(externalProviders) == 0 { + externalProviders = append(externalProviders, ExternalProviders()) + } + steps := []resource.TestStep{} + + for _, provider := range externalProviders { + steps = append(steps, *useExternalProvider(firstStep, provider)) + } + steps = append(steps, TestStepCheckEmptyPlan(firstStep.Config)) return resource.TestCase{ PreCheck: test.PreCheck, CheckDestroy: test.CheckDestroy, - Steps: []resource.TestStep{ - firstStep, - TestStepCheckEmptyPlan(firstStep.Config), - }, + Steps: steps, } } + +//nolint:gocritic +func useExternalProvider(step resource.TestStep, provider map[string]resource.ExternalProvider) *resource.TestStep { + step.ExternalProviders = provider + return &step +} diff --git a/internal/testutil/mig/test_case_test.go b/internal/testutil/mig/test_case_test.go index ab6198e371..cf13a22e91 100644 --- a/internal/testutil/mig/test_case_test.go +++ b/internal/testutil/mig/test_case_test.go @@ -3,9 +3,107 @@ package mig_test import ( "testing" - "github.com/stretchr/testify/require" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-testing/terraform" + "github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/acc" + "github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/mig" + "github.com/stretchr/testify/assert" ) func TestConvertToMigration(t *testing.T) { - require.True(t, true, "always true") + var ( + preCheckCalled = false + checkDestroyCalled = false + config = "someTerraformConfig" + ) + preCheck := func() { + preCheckCalled = true + } + firstStep := resource.TestStep{ + Config: config, + Check: resource.TestCheckResourceAttrSet("someTarget", "someAttribute"), + } + + asserter := assert.New(t) + + convertAndCall := func(test resource.TestCase) resource.TestCase { + newTest := mig.ConvertToMigrationTest(t, &test) + newTest.PreCheck() + if newTest.CheckDestroy != nil { + asserter.NoError(newTest.CheckDestroy(nil)) + } + return newTest + } + defaultAssertions := func(test resource.TestCase) { + asserter.Len(test.Steps, 2, "Expected 2 steps (one extra test step)") + newFirstStep := test.Steps[0] + asserter.Equal(config, newFirstStep.Config) + + planStep := test.Steps[1] + asserter.Equal(mig.TestStepCheckEmptyPlan(config), planStep) + } + + t.Run("normal call with check and destroy", func(t *testing.T) { + checkDestroy := func(*terraform.State) error { + checkDestroyCalled = true + return nil + } + test := convertAndCall(resource.TestCase{ + PreCheck: preCheck, + CheckDestroy: checkDestroy, + Steps: []resource.TestStep{ + firstStep, + }, + }) + asserter.True(preCheckCalled) + asserter.True(checkDestroyCalled) + defaultAssertions(test) + }) + + t.Run("check destroy is nil has no panic", func(t *testing.T) { + test := convertAndCall(resource.TestCase{ + PreCheck: preCheck, + Steps: []resource.TestStep{ + firstStep, + }, + }) + defaultAssertions(test) + }) + + t.Run("more than 1 step uses only 1 step", func(t *testing.T) { + test := convertAndCall(resource.TestCase{ + PreCheck: preCheck, + Steps: []resource.TestStep{ + firstStep, + { + Config: "differentConfig", + Check: resource.TestCheckResourceAttrSet("target", "attribute"), + }, + }, + }) + defaultAssertions(test) + }) + + t.Run("explicit ExternalProvider version", func(t *testing.T) { + test := mig.ConvertToMigrationTest(t, &resource.TestCase{ + PreCheck: preCheck, + Steps: []resource.TestStep{firstStep}, + }, acc.ExternalProviders("1.2.3")) + defaultAssertions(test) + asserter.Equal("1.2.3", test.Steps[0].ExternalProviders["mongodbatlas"].VersionConstraint) + }) + + t.Run("multiple ExternalProviders", func(t *testing.T) { + test := mig.ConvertToMigrationTest(t, &resource.TestCase{ + PreCheck: preCheck, + Steps: []resource.TestStep{firstStep}, + }, acc.ExternalProviders("1.2.3"), acc.ExternalProvidersWithAWS("4.5.6")) + asserter.Len(test.Steps, 3) + asserter.Equal("1.2.3", test.Steps[0].ExternalProviders["mongodbatlas"].VersionConstraint) + asserter.Equal("4.5.6", test.Steps[1].ExternalProviders["mongodbatlas"].VersionConstraint) + // must be upgraded when the aws provider version is changed + asserter.Equal("5.1.0", test.Steps[1].ExternalProviders["aws"].VersionConstraint) + planStep := test.Steps[2] + asserter.Equal(mig.TestStepCheckEmptyPlan(config), planStep) + }) } From c8894288db7e0e4e0d8ada3efa967d9c5d0a61b4 Mon Sep 17 00:00:00 2001 From: EspenAlbert Date: Tue, 26 Mar 2024 10:07:57 +0000 Subject: [PATCH 03/13] test: add ConvertToMigrationTestUseExternalProvider and simplify ConvertToMigrationTest --- internal/testutil/mig/test_case.go | 53 ++++++++++++++++++------- internal/testutil/mig/test_case_test.go | 29 ++++++++------ 2 files changed, 55 insertions(+), 27 deletions(-) diff --git a/internal/testutil/mig/test_case.go b/internal/testutil/mig/test_case.go index 61bcac9482..c68d08319f 100644 --- a/internal/testutil/mig/test_case.go +++ b/internal/testutil/mig/test_case.go @@ -7,26 +7,40 @@ import ( "github.com/stretchr/testify/require" ) -func ConvertToMigrationTest(t *testing.T, test *resource.TestCase, externalProviders ...map[string]resource.ExternalProvider) resource.TestCase { +// ConvertToMigrationTest returns an updated TestCase that reuses step 1 and adds a TestStepCheckEmptyPlan +// Requires: `MONGODB_ATLAS_LAST_VERSION` to be present +func ConvertToMigrationTest(t *testing.T, test *resource.TestCase) resource.TestCase { t.Helper() - checkLastVersion(t) - require.GreaterOrEqual(t, len(test.Steps), 1, "Must have at least 1 test step.") + validateReusableCase(t, test) firstStep := test.Steps[0] - - if len(externalProviders) == 0 { - externalProviders = append(externalProviders, ExternalProviders()) + steps := []resource.TestStep{ + *useExternalProvider(firstStep, ExternalProviders()), + TestStepCheckEmptyPlan(firstStep.Config), } - steps := []resource.TestStep{} + return reuseCase(test, steps) +} - for _, provider := range externalProviders { - steps = append(steps, *useExternalProvider(firstStep, provider)) - } - steps = append(steps, TestStepCheckEmptyPlan(firstStep.Config)) - return resource.TestCase{ - PreCheck: test.PreCheck, - CheckDestroy: test.CheckDestroy, - Steps: steps, +// ConvertToMigrationTestUseExternalProvider returns an updated TestCase that reuses step 1 and adds a TestStepCheckEmptyPlan with the additionalProviders +// Requires: `MONGODB_ATLAS_LAST_VERSION` to be present +// externalProviders: e.g., ExternalProvidersWithAWS() or ExternalProviders("specific_sem_ver") +// additionalProviders: e.g., acc.ExternalProvidersOnlyAWS(), can also be nil +func ConvertToMigrationTestUseExternalProvider(t *testing.T, test *resource.TestCase, externalProviders, additionalProviders map[string]resource.ExternalProvider) resource.TestCase { + t.Helper() + validateReusableCase(t, test) + firstStep := test.Steps[0] + require.NotContains(t, additionalProviders, "mongodbatlas", "Will use the local provider, cannot specify mongodbatlas provider") + steps := []resource.TestStep{ + *useExternalProvider(firstStep, externalProviders), + *useExternalProvider(TestStepCheckEmptyPlan(firstStep.Config), additionalProviders), } + return reuseCase(test, steps) +} + +func validateReusableCase(t *testing.T, test *resource.TestCase) { + t.Helper() + checkLastVersion(t) + require.GreaterOrEqual(t, len(test.Steps), 1, "Must have at least 1 test step.") + require.NotEmpty(t, test.Steps[0].Config, "First step of migration test must use Config") } //nolint:gocritic @@ -34,3 +48,12 @@ func useExternalProvider(step resource.TestStep, provider map[string]resource.Ex step.ExternalProviders = provider return &step } + +func reuseCase(test *resource.TestCase, steps []resource.TestStep) resource.TestCase { + return resource.TestCase{ + PreCheck: test.PreCheck, + CheckDestroy: test.CheckDestroy, + ErrorCheck: test.ErrorCheck, + Steps: steps, + } +} diff --git a/internal/testutil/mig/test_case_test.go b/internal/testutil/mig/test_case_test.go index cf13a22e91..0944fa60aa 100644 --- a/internal/testutil/mig/test_case_test.go +++ b/internal/testutil/mig/test_case_test.go @@ -35,6 +35,7 @@ func TestConvertToMigration(t *testing.T) { return newTest } defaultAssertions := func(test resource.TestCase) { + t.Helper() asserter.Len(test.Steps, 2, "Expected 2 steps (one extra test step)") newFirstStep := test.Steps[0] asserter.Equal(config, newFirstStep.Config) @@ -60,7 +61,7 @@ func TestConvertToMigration(t *testing.T) { defaultAssertions(test) }) - t.Run("check destroy is nil has no panic", func(t *testing.T) { + t.Run("checkDestroy=nil has no panic", func(t *testing.T) { test := convertAndCall(resource.TestCase{ PreCheck: preCheck, Steps: []resource.TestStep{ @@ -83,27 +84,31 @@ func TestConvertToMigration(t *testing.T) { }) defaultAssertions(test) }) + // ConvertToMigrationTestUseExternalProvider - t.Run("explicit ExternalProvider version", func(t *testing.T) { - test := mig.ConvertToMigrationTest(t, &resource.TestCase{ + t.Run("explicit ExternalProvider version an no additional providers", func(t *testing.T) { + test := mig.ConvertToMigrationTestUseExternalProvider(t, &resource.TestCase{ PreCheck: preCheck, Steps: []resource.TestStep{firstStep}, - }, acc.ExternalProviders("1.2.3")) - defaultAssertions(test) + }, acc.ExternalProviders("1.2.3"), nil) + asserter.Len(test.Steps, 2, "Expected 2 steps (one extra test step)") + newFirstStep := test.Steps[0] + asserter.Equal(config, newFirstStep.Config) asserter.Equal("1.2.3", test.Steps[0].ExternalProviders["mongodbatlas"].VersionConstraint) }) - t.Run("multiple ExternalProviders", func(t *testing.T) { - test := mig.ConvertToMigrationTest(t, &resource.TestCase{ + t.Run("explicit ExternalProviders and additional providers", func(t *testing.T) { + test := mig.ConvertToMigrationTestUseExternalProvider(t, &resource.TestCase{ PreCheck: preCheck, Steps: []resource.TestStep{firstStep}, - }, acc.ExternalProviders("1.2.3"), acc.ExternalProvidersWithAWS("4.5.6")) - asserter.Len(test.Steps, 3) + }, acc.ExternalProvidersWithAWS("1.2.3"), acc.ExternalProvidersOnlyAWS()) + asserter.Len(test.Steps, 2, "Expected 2 steps (one extra test step)") + newFirstStep := test.Steps[0] + asserter.Equal(config, newFirstStep.Config) + asserter.Equal("1.2.3", test.Steps[0].ExternalProviders["mongodbatlas"].VersionConstraint) - asserter.Equal("4.5.6", test.Steps[1].ExternalProviders["mongodbatlas"].VersionConstraint) // must be upgraded when the aws provider version is changed + asserter.Equal("5.1.0", test.Steps[0].ExternalProviders["aws"].VersionConstraint) asserter.Equal("5.1.0", test.Steps[1].ExternalProviders["aws"].VersionConstraint) - planStep := test.Steps[2] - asserter.Equal(mig.TestStepCheckEmptyPlan(config), planStep) }) } From 9f1b7dec517913464f33beabe61235d02fcdd936 Mon Sep 17 00:00:00 2001 From: EspenAlbert Date: Tue, 26 Mar 2024 10:09:13 +0000 Subject: [PATCH 04/13] chore: merge from master fix --- .../searchindex/resource_search_index_migration_test.go | 4 ++-- internal/service/searchindex/resource_search_index_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/service/searchindex/resource_search_index_migration_test.go b/internal/service/searchindex/resource_search_index_migration_test.go index 0bccc31c61..f2f33d14b8 100644 --- a/internal/service/searchindex/resource_search_index_migration_test.go +++ b/internal/service/searchindex/resource_search_index_migration_test.go @@ -7,12 +7,12 @@ import ( "github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/mig" ) -func TestMigSearchIndexRS_basic(t *testing.T) { +func TestMigSearchIndex_basic(t *testing.T) { testCase := mig.ConvertToMigrationTest(t, basicTestCase(t)) resource.ParallelTest(t, testCase) } -func TestMigSearchIndexRS_withVector(t *testing.T) { +func TestMigSearchIndex_withVector(t *testing.T) { testCase := mig.ConvertToMigrationTest(t, basicTestCaseVector(t)) resource.ParallelTest(t, testCase) } diff --git a/internal/service/searchindex/resource_search_index_test.go b/internal/service/searchindex/resource_search_index_test.go index 3848c332d4..93eee9825c 100644 --- a/internal/service/searchindex/resource_search_index_test.go +++ b/internal/service/searchindex/resource_search_index_test.go @@ -245,7 +245,7 @@ func basicTestCaseVector(t *testing.T) *resource.TestCase { } } -func TestAccSearchIndexRS_withVector(t *testing.T) { +func TestAccSearchIndex_withVector(t *testing.T) { resource.ParallelTest(t, *basicTestCaseVector(t)) } From d74bff79772b95fae1866d24fde5ad3a273402c6 Mon Sep 17 00:00:00 2001 From: EspenAlbert Date: Tue, 26 Mar 2024 10:23:48 +0000 Subject: [PATCH 05/13] chore: skip unit test in CI --- internal/testutil/mig/test_case_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/testutil/mig/test_case_test.go b/internal/testutil/mig/test_case_test.go index 0944fa60aa..420997e39b 100644 --- a/internal/testutil/mig/test_case_test.go +++ b/internal/testutil/mig/test_case_test.go @@ -11,6 +11,7 @@ import ( ) func TestConvertToMigration(t *testing.T) { + acc.SkipInUnitTest(t) // requires MONGODB_ATLAS_LAST_VERSION var ( preCheckCalled = false checkDestroyCalled = false From 6dcd932de6a5ea76bd4db8dcc9a5a0dbb20d64cd Mon Sep 17 00:00:00 2001 From: EspenAlbert Date: Tue, 26 Mar 2024 11:23:03 +0000 Subject: [PATCH 06/13] refactor: using the pointer is ok, we never pass the same step --- internal/testutil/mig/test_case.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/internal/testutil/mig/test_case.go b/internal/testutil/mig/test_case.go index c68d08319f..155419510e 100644 --- a/internal/testutil/mig/test_case.go +++ b/internal/testutil/mig/test_case.go @@ -14,7 +14,7 @@ func ConvertToMigrationTest(t *testing.T, test *resource.TestCase) resource.Test validateReusableCase(t, test) firstStep := test.Steps[0] steps := []resource.TestStep{ - *useExternalProvider(firstStep, ExternalProviders()), + useExternalProvider(&firstStep, ExternalProviders()), TestStepCheckEmptyPlan(firstStep.Config), } return reuseCase(test, steps) @@ -29,9 +29,10 @@ func ConvertToMigrationTestUseExternalProvider(t *testing.T, test *resource.Test validateReusableCase(t, test) firstStep := test.Steps[0] require.NotContains(t, additionalProviders, "mongodbatlas", "Will use the local provider, cannot specify mongodbatlas provider") + emptyPlanStep := TestStepCheckEmptyPlan(firstStep.Config) steps := []resource.TestStep{ - *useExternalProvider(firstStep, externalProviders), - *useExternalProvider(TestStepCheckEmptyPlan(firstStep.Config), additionalProviders), + useExternalProvider(&firstStep, externalProviders), + useExternalProvider(&emptyPlanStep, additionalProviders), } return reuseCase(test, steps) } @@ -43,12 +44,12 @@ func validateReusableCase(t *testing.T, test *resource.TestCase) { require.NotEmpty(t, test.Steps[0].Config, "First step of migration test must use Config") } -//nolint:gocritic -func useExternalProvider(step resource.TestStep, provider map[string]resource.ExternalProvider) *resource.TestStep { +func useExternalProvider(step *resource.TestStep, provider map[string]resource.ExternalProvider) resource.TestStep { step.ExternalProviders = provider - return &step + return *step } +// Note how we don't set ProtoV6ProviderFactories and instead specify providers on each step func reuseCase(test *resource.TestCase, steps []resource.TestStep) resource.TestCase { return resource.TestCase{ PreCheck: test.PreCheck, From 8e969ad57cf6ff3dc5ed16f21501376469921b46 Mon Sep 17 00:00:00 2001 From: EspenAlbert Date: Tue, 26 Mar 2024 11:32:44 +0000 Subject: [PATCH 07/13] test: use Setenv to enable TestConvertToMigration in unit tests --- internal/testutil/mig/test_case_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/testutil/mig/test_case_test.go b/internal/testutil/mig/test_case_test.go index 420997e39b..a3df9f5dd1 100644 --- a/internal/testutil/mig/test_case_test.go +++ b/internal/testutil/mig/test_case_test.go @@ -11,7 +11,7 @@ import ( ) func TestConvertToMigration(t *testing.T) { - acc.SkipInUnitTest(t) // requires MONGODB_ATLAS_LAST_VERSION + t.Setenv("MONGODB_ATLAS_LAST_VERSION", "1.2.3") var ( preCheckCalled = false checkDestroyCalled = false From 78a605ef01112eb0ad8488c29346d06ccbe5fcd0 Mon Sep 17 00:00:00 2001 From: EspenAlbert Date: Tue, 26 Mar 2024 12:21:29 +0000 Subject: [PATCH 08/13] refactor: apply pr suggestions --- .../resource_search_index_migration_test.go | 6 ++---- .../searchindex/resource_search_index_test.go | 19 +++++++++---------- internal/testutil/mig/test_case.go | 8 ++++---- internal/testutil/mig/test_case_test.go | 6 +++--- 4 files changed, 18 insertions(+), 21 deletions(-) diff --git a/internal/service/searchindex/resource_search_index_migration_test.go b/internal/service/searchindex/resource_search_index_migration_test.go index f2f33d14b8..6579d349c1 100644 --- a/internal/service/searchindex/resource_search_index_migration_test.go +++ b/internal/service/searchindex/resource_search_index_migration_test.go @@ -8,11 +8,9 @@ import ( ) func TestMigSearchIndex_basic(t *testing.T) { - testCase := mig.ConvertToMigrationTest(t, basicTestCase(t)) - resource.ParallelTest(t, testCase) + resource.ParallelTest(t, mig.CreateTest(t, basicTestCase(t))) } func TestMigSearchIndex_withVector(t *testing.T) { - testCase := mig.ConvertToMigrationTest(t, basicTestCaseVector(t)) - resource.ParallelTest(t, testCase) + resource.ParallelTest(t, mig.CreateTest(t, basicTestCaseVector(t))) } diff --git a/internal/service/searchindex/resource_search_index_test.go b/internal/service/searchindex/resource_search_index_test.go index 93eee9825c..c7ee18404d 100644 --- a/internal/service/searchindex/resource_search_index_test.go +++ b/internal/service/searchindex/resource_search_index_test.go @@ -11,10 +11,10 @@ import ( "github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/acc" ) -func basicTestCase(t *testing.T) *resource.TestCase { - t.Helper() +func basicTestCase(tb testing.TB) *resource.TestCase { + tb.Helper() var ( - clusterInfo = acc.GetClusterInfo(t, nil) + clusterInfo = acc.GetClusterInfo(tb, nil) indexName = acc.RandomName() databaseName = acc.RandomName() indexType = "" @@ -23,7 +23,7 @@ func basicTestCase(t *testing.T) *resource.TestCase { checks := commonChecks(indexName, indexType, mappingsDynamic, databaseName, clusterInfo) return &resource.TestCase{ - PreCheck: func() { acc.PreCheckBasic(t) }, + PreCheck: func() { acc.PreCheckBasic(tb) }, ProtoV6ProviderFactories: acc.TestAccProviderV6Factories, CheckDestroy: acc.CheckDestroySearchIndex, Steps: []resource.TestStep{ @@ -43,8 +43,7 @@ func basicTestCase(t *testing.T) *resource.TestCase { } func TestAccSearchIndex_basic(t *testing.T) { - basicCase := basicTestCase(t) - resource.ParallelTest(t, *basicCase) + resource.ParallelTest(t, *basicTestCase(t)) } func TestAccSearchIndex_withSearchType(t *testing.T) { @@ -212,10 +211,10 @@ func TestAccSearchIndex_updatedToEmptyMappingsFields(t *testing.T) { }, }) } -func basicTestCaseVector(t *testing.T) *resource.TestCase { - t.Helper() +func basicTestCaseVector(tb testing.TB) *resource.TestCase { + tb.Helper() var ( - clusterInfo = acc.GetClusterInfo(t, nil) + clusterInfo = acc.GetClusterInfo(tb, nil) indexName = acc.RandomName() indexType = "vectorSearch" databaseName = acc.RandomName() @@ -233,7 +232,7 @@ func basicTestCaseVector(t *testing.T) *resource.TestCase { checks = append(checks, resource.TestCheckResourceAttrWith(datasourceName, "fields", acc.JSONEquals(fieldsJSON))) return &resource.TestCase{ - PreCheck: func() { acc.PreCheckBasic(t) }, + PreCheck: func() { acc.PreCheckBasic(tb) }, ProtoV6ProviderFactories: acc.TestAccProviderV6Factories, CheckDestroy: acc.CheckDestroySearchIndex, Steps: []resource.TestStep{ diff --git a/internal/testutil/mig/test_case.go b/internal/testutil/mig/test_case.go index 155419510e..7d488277a3 100644 --- a/internal/testutil/mig/test_case.go +++ b/internal/testutil/mig/test_case.go @@ -7,9 +7,9 @@ import ( "github.com/stretchr/testify/require" ) -// ConvertToMigrationTest returns an updated TestCase that reuses step 1 and adds a TestStepCheckEmptyPlan +// CreateTest returns a new TestCase that reuses step 1 and adds a TestStepCheckEmptyPlan // Requires: `MONGODB_ATLAS_LAST_VERSION` to be present -func ConvertToMigrationTest(t *testing.T, test *resource.TestCase) resource.TestCase { +func CreateTest(t *testing.T, test *resource.TestCase) resource.TestCase { t.Helper() validateReusableCase(t, test) firstStep := test.Steps[0] @@ -20,11 +20,11 @@ func ConvertToMigrationTest(t *testing.T, test *resource.TestCase) resource.Test return reuseCase(test, steps) } -// ConvertToMigrationTestUseExternalProvider returns an updated TestCase that reuses step 1 and adds a TestStepCheckEmptyPlan with the additionalProviders +// CreateTestUseExternalProvider returns a new TestCase that reuses step 1 and adds a TestStepCheckEmptyPlan with the additionalProviders // Requires: `MONGODB_ATLAS_LAST_VERSION` to be present // externalProviders: e.g., ExternalProvidersWithAWS() or ExternalProviders("specific_sem_ver") // additionalProviders: e.g., acc.ExternalProvidersOnlyAWS(), can also be nil -func ConvertToMigrationTestUseExternalProvider(t *testing.T, test *resource.TestCase, externalProviders, additionalProviders map[string]resource.ExternalProvider) resource.TestCase { +func CreateTestUseExternalProvider(t *testing.T, test *resource.TestCase, externalProviders, additionalProviders map[string]resource.ExternalProvider) resource.TestCase { t.Helper() validateReusableCase(t, test) firstStep := test.Steps[0] diff --git a/internal/testutil/mig/test_case_test.go b/internal/testutil/mig/test_case_test.go index a3df9f5dd1..4a34fb26ab 100644 --- a/internal/testutil/mig/test_case_test.go +++ b/internal/testutil/mig/test_case_test.go @@ -28,7 +28,7 @@ func TestConvertToMigration(t *testing.T) { asserter := assert.New(t) convertAndCall := func(test resource.TestCase) resource.TestCase { - newTest := mig.ConvertToMigrationTest(t, &test) + newTest := mig.CreateTest(t, &test) newTest.PreCheck() if newTest.CheckDestroy != nil { asserter.NoError(newTest.CheckDestroy(nil)) @@ -88,7 +88,7 @@ func TestConvertToMigration(t *testing.T) { // ConvertToMigrationTestUseExternalProvider t.Run("explicit ExternalProvider version an no additional providers", func(t *testing.T) { - test := mig.ConvertToMigrationTestUseExternalProvider(t, &resource.TestCase{ + test := mig.CreateTestUseExternalProvider(t, &resource.TestCase{ PreCheck: preCheck, Steps: []resource.TestStep{firstStep}, }, acc.ExternalProviders("1.2.3"), nil) @@ -99,7 +99,7 @@ func TestConvertToMigration(t *testing.T) { }) t.Run("explicit ExternalProviders and additional providers", func(t *testing.T) { - test := mig.ConvertToMigrationTestUseExternalProvider(t, &resource.TestCase{ + test := mig.CreateTestUseExternalProvider(t, &resource.TestCase{ PreCheck: preCheck, Steps: []resource.TestStep{firstStep}, }, acc.ExternalProvidersWithAWS("1.2.3"), acc.ExternalProvidersOnlyAWS()) From 1b76bef3dca52c9b06bf98f8f497d516b89db669 Mon Sep 17 00:00:00 2001 From: EspenAlbert Date: Tue, 26 Mar 2024 12:34:43 +0000 Subject: [PATCH 09/13] test: expose CreateAndRun to simplify call from migration tests --- .../resource_search_index_migration_test.go | 5 ++-- internal/testutil/mig/test_case.go | 23 ++++++++++++++----- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/internal/service/searchindex/resource_search_index_migration_test.go b/internal/service/searchindex/resource_search_index_migration_test.go index 6579d349c1..1b7e3281ec 100644 --- a/internal/service/searchindex/resource_search_index_migration_test.go +++ b/internal/service/searchindex/resource_search_index_migration_test.go @@ -3,14 +3,13 @@ package searchindex_test import ( "testing" - "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/mig" ) func TestMigSearchIndex_basic(t *testing.T) { - resource.ParallelTest(t, mig.CreateTest(t, basicTestCase(t))) + mig.CreateAndRunTest(t, basicTestCase(t)) } func TestMigSearchIndex_withVector(t *testing.T) { - resource.ParallelTest(t, mig.CreateTest(t, basicTestCaseVector(t))) + mig.CreateAndRunTest(t, basicTestCaseVector(t)) } diff --git a/internal/testutil/mig/test_case.go b/internal/testutil/mig/test_case.go index 7d488277a3..5d8882be0f 100644 --- a/internal/testutil/mig/test_case.go +++ b/internal/testutil/mig/test_case.go @@ -7,6 +7,16 @@ import ( "github.com/stretchr/testify/require" ) +func CreateAndRunTest(t *testing.T, test *resource.TestCase) { + t.Helper() + resource.ParallelTest(t, CreateTest(t, test)) +} + +func CreateTestAndRunUseExternalProvider(t *testing.T, test *resource.TestCase, externalProviders, additionalProviders map[string]resource.ExternalProvider) { + t.Helper() + resource.ParallelTest(t, CreateTestUseExternalProvider(t, test, externalProviders, additionalProviders)) +} + // CreateTest returns a new TestCase that reuses step 1 and adds a TestStepCheckEmptyPlan // Requires: `MONGODB_ATLAS_LAST_VERSION` to be present func CreateTest(t *testing.T, test *resource.TestCase) resource.TestCase { @@ -17,7 +27,8 @@ func CreateTest(t *testing.T, test *resource.TestCase) resource.TestCase { useExternalProvider(&firstStep, ExternalProviders()), TestStepCheckEmptyPlan(firstStep.Config), } - return reuseCase(test, steps) + newTest := reuseCase(test, steps) + return newTest } // CreateTestUseExternalProvider returns a new TestCase that reuses step 1 and adds a TestStepCheckEmptyPlan with the additionalProviders @@ -37,11 +48,11 @@ func CreateTestUseExternalProvider(t *testing.T, test *resource.TestCase, extern return reuseCase(test, steps) } -func validateReusableCase(t *testing.T, test *resource.TestCase) { - t.Helper() - checkLastVersion(t) - require.GreaterOrEqual(t, len(test.Steps), 1, "Must have at least 1 test step.") - require.NotEmpty(t, test.Steps[0].Config, "First step of migration test must use Config") +func validateReusableCase(tb testing.TB, test *resource.TestCase) { + tb.Helper() + checkLastVersion(tb) + require.GreaterOrEqual(tb, len(test.Steps), 1, "Must have at least 1 test step.") + require.NotEmpty(tb, test.Steps[0].Config, "First step of migration test must use Config") } func useExternalProvider(step *resource.TestStep, provider map[string]resource.ExternalProvider) resource.TestStep { From 7676f0286ac4eb5a11a6ff846e5215b254cdfc5e Mon Sep 17 00:00:00 2001 From: EspenAlbert Date: Tue, 26 Mar 2024 12:35:56 +0000 Subject: [PATCH 10/13] docs: fix docstrings --- internal/testutil/mig/test_case.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/internal/testutil/mig/test_case.go b/internal/testutil/mig/test_case.go index 5d8882be0f..6d63dcb688 100644 --- a/internal/testutil/mig/test_case.go +++ b/internal/testutil/mig/test_case.go @@ -17,8 +17,8 @@ func CreateTestAndRunUseExternalProvider(t *testing.T, test *resource.TestCase, resource.ParallelTest(t, CreateTestUseExternalProvider(t, test, externalProviders, additionalProviders)) } -// CreateTest returns a new TestCase that reuses step 1 and adds a TestStepCheckEmptyPlan -// Requires: `MONGODB_ATLAS_LAST_VERSION` to be present +// CreateTest returns a new TestCase that reuses step 1 and adds a TestStepCheckEmptyPlan. +// Requires: `MONGODB_ATLAS_LAST_VERSION` to be present. func CreateTest(t *testing.T, test *resource.TestCase) resource.TestCase { t.Helper() validateReusableCase(t, test) @@ -31,10 +31,10 @@ func CreateTest(t *testing.T, test *resource.TestCase) resource.TestCase { return newTest } -// CreateTestUseExternalProvider returns a new TestCase that reuses step 1 and adds a TestStepCheckEmptyPlan with the additionalProviders -// Requires: `MONGODB_ATLAS_LAST_VERSION` to be present -// externalProviders: e.g., ExternalProvidersWithAWS() or ExternalProviders("specific_sem_ver") -// additionalProviders: e.g., acc.ExternalProvidersOnlyAWS(), can also be nil +// CreateTestUseExternalProvider returns a new TestCase that reuses step 1 and adds a TestStepCheckEmptyPlan with the additionalProviders. +// Requires: `MONGODB_ATLAS_LAST_VERSION` to be present. +// externalProviders: e.g., ExternalProvidersWithAWS() or ExternalProviders("specific_sem_ver"). +// additionalProviders: e.g., acc.ExternalProvidersOnlyAWS(), can also be nil. func CreateTestUseExternalProvider(t *testing.T, test *resource.TestCase, externalProviders, additionalProviders map[string]resource.ExternalProvider) resource.TestCase { t.Helper() validateReusableCase(t, test) @@ -60,7 +60,7 @@ func useExternalProvider(step *resource.TestStep, provider map[string]resource.E return *step } -// Note how we don't set ProtoV6ProviderFactories and instead specify providers on each step +// Note how we don't set ProtoV6ProviderFactories and instead specify providers on each step. func reuseCase(test *resource.TestCase, steps []resource.TestStep) resource.TestCase { return resource.TestCase{ PreCheck: test.PreCheck, From bf7bd5133f48b42920f69e905ece103ac08341ad Mon Sep 17 00:00:00 2001 From: Espen Albert Date: Tue, 26 Mar 2024 13:14:51 +0000 Subject: [PATCH 11/13] Update internal/service/searchindex/resource_search_index_migration_test.go Co-authored-by: Leo Antoli <430982+lantoli@users.noreply.github.com> --- .../service/searchindex/resource_search_index_migration_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/service/searchindex/resource_search_index_migration_test.go b/internal/service/searchindex/resource_search_index_migration_test.go index 1b7e3281ec..0cc1138662 100644 --- a/internal/service/searchindex/resource_search_index_migration_test.go +++ b/internal/service/searchindex/resource_search_index_migration_test.go @@ -11,5 +11,5 @@ func TestMigSearchIndex_basic(t *testing.T) { } func TestMigSearchIndex_withVector(t *testing.T) { - mig.CreateAndRunTest(t, basicTestCaseVector(t)) + mig.CreateAndRunTest(t, basicVectorTestCase(t)) } From cc3d9095494f6eb9dbda1c0a592e2a5c825133da Mon Sep 17 00:00:00 2001 From: EspenAlbert Date: Tue, 26 Mar 2024 13:27:24 +0000 Subject: [PATCH 12/13] test: refactor private methods to the bottom of the file --- .../searchindex/resource_search_index_test.go | 73 ++++++++++--------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/internal/service/searchindex/resource_search_index_test.go b/internal/service/searchindex/resource_search_index_test.go index c7ee18404d..230c059075 100644 --- a/internal/service/searchindex/resource_search_index_test.go +++ b/internal/service/searchindex/resource_search_index_test.go @@ -11,37 +11,6 @@ import ( "github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/acc" ) -func basicTestCase(tb testing.TB) *resource.TestCase { - tb.Helper() - var ( - clusterInfo = acc.GetClusterInfo(tb, nil) - indexName = acc.RandomName() - databaseName = acc.RandomName() - indexType = "" - mappingsDynamic = "true" - ) - checks := commonChecks(indexName, indexType, mappingsDynamic, databaseName, clusterInfo) - - return &resource.TestCase{ - PreCheck: func() { acc.PreCheckBasic(tb) }, - ProtoV6ProviderFactories: acc.TestAccProviderV6Factories, - CheckDestroy: acc.CheckDestroySearchIndex, - Steps: []resource.TestStep{ - { - Config: configBasic(clusterInfo.ProjectIDStr, indexName, databaseName, clusterInfo.ClusterNameStr, clusterInfo.ClusterTerraformStr, false), - Check: resource.ComposeTestCheckFunc(checks...), - }, - { - Config: configBasic(clusterInfo.ProjectIDStr, indexName, databaseName, clusterInfo.ClusterNameStr, clusterInfo.ClusterTerraformStr, false), - ResourceName: resourceName, - ImportStateIdFunc: importStateIDFunc(resourceName), - ImportState: true, - ImportStateVerify: true, - }, - }, - } -} - func TestAccSearchIndex_basic(t *testing.T) { resource.ParallelTest(t, *basicTestCase(t)) } @@ -211,7 +180,43 @@ func TestAccSearchIndex_updatedToEmptyMappingsFields(t *testing.T) { }, }) } -func basicTestCaseVector(tb testing.TB) *resource.TestCase { + +func TestAccSearchIndex_withVector(t *testing.T) { + resource.ParallelTest(t, *basicVectorTestCase(t)) +} + +func basicTestCase(tb testing.TB) *resource.TestCase { + tb.Helper() + var ( + clusterInfo = acc.GetClusterInfo(tb, nil) + indexName = acc.RandomName() + databaseName = acc.RandomName() + indexType = "" + mappingsDynamic = "true" + ) + checks := commonChecks(indexName, indexType, mappingsDynamic, databaseName, clusterInfo) + + return &resource.TestCase{ + PreCheck: func() { acc.PreCheckBasic(tb) }, + ProtoV6ProviderFactories: acc.TestAccProviderV6Factories, + CheckDestroy: acc.CheckDestroySearchIndex, + Steps: []resource.TestStep{ + { + Config: configBasic(clusterInfo.ProjectIDStr, indexName, databaseName, clusterInfo.ClusterNameStr, clusterInfo.ClusterTerraformStr, false), + Check: resource.ComposeTestCheckFunc(checks...), + }, + { + Config: configBasic(clusterInfo.ProjectIDStr, indexName, databaseName, clusterInfo.ClusterNameStr, clusterInfo.ClusterTerraformStr, false), + ResourceName: resourceName, + ImportStateIdFunc: importStateIDFunc(resourceName), + ImportState: true, + ImportStateVerify: true, + }, + }, + } +} + +func basicVectorTestCase(tb testing.TB) *resource.TestCase { tb.Helper() var ( clusterInfo = acc.GetClusterInfo(tb, nil) @@ -244,10 +249,6 @@ func basicTestCaseVector(tb testing.TB) *resource.TestCase { } } -func TestAccSearchIndex_withVector(t *testing.T) { - resource.ParallelTest(t, *basicTestCaseVector(t)) -} - func commonChecks(indexName, indexType, mappingsDynamic, databaseName string, clusterInfo acc.ClusterInfo) []resource.TestCheckFunc { attributes := map[string]string{ "name": indexName, From f9bcc1e2085a32e3a74948ef3e04a97f0cd6cd30 Mon Sep 17 00:00:00 2001 From: EspenAlbert Date: Tue, 26 Mar 2024 17:42:33 +0000 Subject: [PATCH 13/13] refactor: extract AWS_PROVIDER_VERSION to package variable --- internal/testutil/acc/provider.go | 4 +++- internal/testutil/mig/test_case_test.go | 5 ++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/internal/testutil/acc/provider.go b/internal/testutil/acc/provider.go index 2abd09551d..948b913e77 100644 --- a/internal/testutil/acc/provider.go +++ b/internal/testutil/acc/provider.go @@ -4,6 +4,8 @@ import ( "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) +const AwsProviderVersion = "5.1.0" + func ExternalProviders(versionAtlasProvider string) map[string]resource.ExternalProvider { return map[string]resource.ExternalProvider{ "mongodbatlas": *providerAtlas(versionAtlasProvider), @@ -32,7 +34,7 @@ func providerAtlas(versionAtlasProvider string) *resource.ExternalProvider { func providerAWS() *resource.ExternalProvider { return &resource.ExternalProvider{ - VersionConstraint: "5.1.0", + VersionConstraint: AwsProviderVersion, Source: "hashicorp/aws", } } diff --git a/internal/testutil/mig/test_case_test.go b/internal/testutil/mig/test_case_test.go index 4a34fb26ab..1e30407bed 100644 --- a/internal/testutil/mig/test_case_test.go +++ b/internal/testutil/mig/test_case_test.go @@ -108,8 +108,7 @@ func TestConvertToMigration(t *testing.T) { asserter.Equal(config, newFirstStep.Config) asserter.Equal("1.2.3", test.Steps[0].ExternalProviders["mongodbatlas"].VersionConstraint) - // must be upgraded when the aws provider version is changed - asserter.Equal("5.1.0", test.Steps[0].ExternalProviders["aws"].VersionConstraint) - asserter.Equal("5.1.0", test.Steps[1].ExternalProviders["aws"].VersionConstraint) + asserter.Equal(acc.AwsProviderVersion, test.Steps[0].ExternalProviders["aws"].VersionConstraint) + asserter.Equal(acc.AwsProviderVersion, test.Steps[1].ExternalProviders["aws"].VersionConstraint) }) }