Skip to content

Commit f1ef5a0

Browse files
authored
chore: Fixes acceptance and migrations tests not running in CI (#1907)
* TestAccFedDSFederatedSettingsIdentityProvider_oidcBasic * federated settings * federated settings org role mapping * federated database query limits * include all backup tests * all federated together * MONGODB_ATLAS_ORG_ID in federated * typo * data lake * fix data lake test pre checks * remove SkipIfTFAccNotDefined * remove SkipTest * remove SkipTestExtCred * ldap * fix unit tests * encryption at rest * fix ldap * advanced cluster mig tests * global config cluster * add network tests * fix last test names * event trigger * remove project id from global cluster config * serverless endpoints in network test group * skip global cluster config * serverless group in mig tests * fix serverless mig config * leftovers
1 parent 3acfe45 commit f1ef5a0

File tree

56 files changed

+518
-391
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+518
-391
lines changed

.github/workflows/acceptance-tests-runner.yml

Lines changed: 154 additions & 119 deletions
Large diffs are not rendered by default.

.github/workflows/acceptance-tests.yml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ jobs:
5151
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
5252
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
5353
aws_s3_bucket_federation: ${{ secrets.AWS_S3_BUCKET_FEDERATION }}
54+
mongodb_atlas_ldap_hostname: ${{ secrets.MONGODB_ATLAS_LDAP_HOSTNAME }}
55+
mongodb_atlas_ldap_username: ${{ secrets.MONGODB_ATLAS_LDAP_USERNAME }}
56+
mongodb_atlas_ldap_password: ${{ secrets.MONGODB_ATLAS_LDAP_PASSWORD }}
57+
mongodb_atlas_ldap_port: ${{ secrets.MONGODB_ATLAS_LDAP_PORT }}
5458
with:
5559
terraform_version: ${{ inputs.terraform_version || vars.TF_VERSION_LATEST }}
5660
ref: ${{ inputs.ref }}
@@ -69,10 +73,10 @@ jobs:
6973
azure_tenant_id: ${{ inputs.atlas_cloud_env == 'qa' && vars.AZURE_TENANT_ID_QA || vars.AZURE_TENANT_ID }}
7074
aws_secret_name: ${{ inputs.atlas_cloud_env == 'qa' && vars.AWS_SECRET_NAME_QA || vars.AWS_SECRET_NAME }}
7175
mongodb_atlas_federation_settings_id: ${{ inputs.atlas_cloud_env == 'qa' && vars.MONGODB_ATLAS_FEDERATION_SETTINGS_ID_QA || vars.MONGODB_ATLAS_FEDERATION_SETTINGS_ID }}
72-
mongodb_atlas_federatied_okta_idp_id: ${{ inputs.atlas_cloud_env == 'qa' && vars.MONGODB_ATLAS_FEDERATED_OKTA_IDP_ID_QA || vars.MONGODB_ATLAS_FEDERATED_OKTA_IDP_ID }}
73-
mongodb_atlas_federatied_idp_id: ${{ inputs.atlas_cloud_env == 'qa' && vars.MONGODB_ATLAS_FEDERATED_IDP_ID_QA || vars.MONGODB_ATLAS_FEDERATED_IDP_ID }}
74-
mongodb_atlas_federatied_oidc_idp_id: ${{ inputs.atlas_cloud_env == 'qa' && vars.MONGODB_ATLAS_FEDERATED_OIDC_IDP_ID_QA || vars.MONGODB_ATLAS_FEDERATED_OIDC_IDP_ID }}
75-
mongodb_atlas_federatied_sso_url: ${{ vars.MONGODB_ATLAS_FEDERATED_SSO_URL }}
76-
mongodb_atlas_federatied_issuer_uri: ${{ vars.MONGODB_ATLAS_FEDERATED_ISSUER_URI }}
77-
mongodb_atlas_federatied_project_id: ${{ inputs.atlas_cloud_env == 'qa' && vars.MONGODB_ATLAS_FEDERATED_PROJECT_ID_QA || vars.MONGODB_ATLAS_FEDERATED_PROJECT_ID }}
78-
mongodb_atlas_federatied_org_id: ${{ inputs.atlas_cloud_env == 'qa' && vars.MONGODB_ATLAS_FEDERATED_ORG_ID_QA || vars.MONGODB_ATLAS_FEDERATED_ORG_ID }}
76+
mongodb_atlas_federated_okta_idp_id: ${{ inputs.atlas_cloud_env == 'qa' && vars.MONGODB_ATLAS_FEDERATED_OKTA_IDP_ID_QA || vars.MONGODB_ATLAS_FEDERATED_OKTA_IDP_ID }}
77+
mongodb_atlas_federated_idp_id: ${{ inputs.atlas_cloud_env == 'qa' && vars.MONGODB_ATLAS_FEDERATED_IDP_ID_QA || vars.MONGODB_ATLAS_FEDERATED_IDP_ID }}
78+
mongodb_atlas_federated_oidc_idp_id: ${{ inputs.atlas_cloud_env == 'qa' && vars.MONGODB_ATLAS_FEDERATED_OIDC_IDP_ID_QA || vars.MONGODB_ATLAS_FEDERATED_OIDC_IDP_ID }}
79+
mongodb_atlas_federated_sso_url: ${{ vars.MONGODB_ATLAS_FEDERATED_SSO_URL }}
80+
mongodb_atlas_federated_issuer_uri: ${{ vars.MONGODB_ATLAS_FEDERATED_ISSUER_URI }}
81+
mongodb_atlas_federated_project_id: ${{ inputs.atlas_cloud_env == 'qa' && vars.MONGODB_ATLAS_FEDERATED_PROJECT_ID_QA || vars.MONGODB_ATLAS_FEDERATED_PROJECT_ID }}
82+
mongodb_atlas_federated_org_id: ${{ inputs.atlas_cloud_env == 'qa' && vars.MONGODB_ATLAS_FEDERATED_ORG_ID_QA || vars.MONGODB_ATLAS_FEDERATED_ORG_ID }}

.github/workflows/migration-tests.yml

Lines changed: 75 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,7 @@ on:
2929

3030
env:
3131
terraform_version: ${{ inputs.terraform_version || vars.TF_VERSION_LATEST }}
32-
# CI: true # GH does this automatically
3332
TF_ACC: 1
34-
SKIP_TEST_EXTERNAL_CREDENTIALS: true
3533
TF_LOG: ${{ vars.LOG_LEVEL }}
3634
ACCTEST_TIMEOUT: ${{ vars.ACCTEST_TIMEOUT }}
3735

@@ -59,12 +57,14 @@ jobs:
5957
project: ${{ steps.filter.outputs.project == 'true' || env.mustTrigger == 'true' }}
6058
config: ${{ steps.filter.outputs.config == 'true' || env.mustTrigger == 'true' }}
6159
advanced_cluster: ${{ steps.filter.outputs.advanced_cluster == 'true' || env.mustTrigger == 'true' }}
62-
backup_online_archive: ${{ steps.filter.outputs.backup_online_archive == 'true' || env.mustTrigger == 'true' }}
60+
backup: ${{ steps.filter.outputs.backup == 'true' || env.mustTrigger == 'true' }}
6361
stream: ${{ steps.filter.outputs.stream == 'true' || env.mustTrigger == 'true' }}
64-
federation: ${{ steps.filter.outputs.federation == 'true' || env.mustTrigger == 'true' }}
62+
federated: ${{ steps.filter.outputs.federated == 'true' || env.mustTrigger == 'true' }}
6563
search_deployment: ${{ steps.filter.outputs.search_deployment == 'true' || env.mustTrigger == 'true' }}
6664
generic: ${{ steps.filter.outputs.generic == 'true' || env.mustTrigger == 'true' }}
6765
network: ${{ steps.filter.outputs.network == 'true' || env.mustTrigger == 'true' }}
66+
encryption: ${{ steps.filter.outputs.encryption == 'true' || env.mustTrigger == 'true' }}
67+
serverless: ${{ steps.filter.outputs.serverless == 'true' || env.mustTrigger == 'true' }}
6868
steps:
6969
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
7070
- uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd
@@ -92,15 +92,24 @@ jobs:
9292
- 'internal/service/orginvitation/*.go'
9393
- 'internal/service/organization/*.go'
9494
- 'internal/service/thirdpartyintegration/*.go'
95-
backup_online_archive:
95+
backup:
9696
- 'internal/service/onlinearchive/*.go'
97+
- 'internal/service/cloudbackupschedule/*.go'
98+
- 'internal/service/cloudbackupsnapshot/*.go'
99+
- 'internal/service/cloudbackupsnapshotexportbucket/*.go'
100+
- 'internal/service/cloudbackupsnapshotexportjob/*.go'
101+
- 'internal/service/cloudbackupsnapshotrestorejob/*.go'
97102
advanced_cluster:
98103
- 'internal/service/advancedcluster/*.go'
99104
stream:
100105
- 'internal/service/streaminstance/*.go'
101106
- 'internal/service/streamconnection/*.go'
102-
federation:
107+
federated:
108+
- 'internal/service/federatedsettingsidentityprovider/*.go'
103109
- 'internal/service/federateddatabaseinstance/*.go'
110+
- 'internal/service/federatedsettingsorgconfig/*.go'
111+
- 'internal/service/federatedsettingsorgrolemapping/*.go'
112+
- 'internal/service/federatedquerylimit/*.go'
104113
search_deployment:
105114
- 'internal/service/searchdeployment/*.go'
106115
generic:
@@ -114,6 +123,12 @@ jobs:
114123
- 'internal/service/privatelinkendpoint/*.go'
115124
- 'internal/service/privatelinkendpointservice/*.go'
116125
- 'internal/service/privatelinkendpointservicedatafederationonlinearchive/*.go'
126+
encryption:
127+
- 'internal/service/encryptionatrest/*.go'
128+
serverless:
129+
- 'internal/service/serverlessinstance/*.go'
130+
- 'internal/service/privatelinkendpointserverless/*.go'
131+
- 'internal/service/privatelinkendpointserviceserverless/*.go'
117132
118133
project:
119134
needs: [ change-detection, get-provider-version ]
@@ -180,9 +195,9 @@ jobs:
180195
TEST_REGEX: "^TestAccMigrationConfig"
181196
run: make testacc
182197

183-
backup_online_archive:
198+
backup:
184199
needs: [ change-detection, get-provider-version ]
185-
if: ${{ needs.change-detection.outputs.backup_online_archive == 'true' || inputs.test_group == 'backup_online_archive' }}
200+
if: ${{ needs.change-detection.outputs.backup == 'true' || inputs.test_group == 'backup' }}
186201
runs-on: ubuntu-latest
187202
steps:
188203
- name: Checkout
@@ -257,9 +272,9 @@ jobs:
257272
TEST_REGEX: "^TestAccMigrationStream"
258273
run: make testacc
259274

260-
federation:
275+
federated:
261276
needs: [ change-detection, get-provider-version ]
262-
if: ${{ needs.change-detection.outputs.federation == 'true' || inputs.test_group == 'federation' }}
277+
if: ${{ needs.change-detection.outputs.federated == 'true' || inputs.test_group == 'federated' }}
263278
runs-on: ubuntu-latest
264279
steps:
265280
- name: Checkout
@@ -283,7 +298,7 @@ jobs:
283298
MONGODB_ATLAS_PUBLIC_KEY: ${{ secrets.MONGODB_ATLAS_PUBLIC_KEY_CLOUD_DEV }}
284299
MONGODB_ATLAS_PRIVATE_KEY: ${{ secrets.MONGODB_ATLAS_PRIVATE_KEY_CLOUD_DEV }}
285300
MONGODB_ATLAS_LAST_VERSION: ${{ needs.get-provider-version.outputs.provider_version }}
286-
TEST_REGEX: "^TestAccMigrationFederatedDatabaseInstance"
301+
TEST_REGEX: "^TestAccMigrationFederated"
287302
run: make testacc
288303

289304
search_deployment:
@@ -371,3 +386,52 @@ jobs:
371386
MONGODB_ATLAS_LAST_VERSION: ${{ needs.get-provider-version.outputs.provider_version }}
372387
TEST_REGEX: "^TestAccMigrationNetwork"
373388
run: make testacc
389+
encryption:
390+
needs: [ change-detection, get-provider-version ]
391+
if: ${{ needs.change-detection.outputs.encryption == 'true' || inputs.test_group == 'encryption' }}
392+
runs-on: ubuntu-latest
393+
steps:
394+
- name: Checkout
395+
uses: actions/checkout@v4
396+
- name: Set up Go
397+
uses: actions/setup-go@v5
398+
with:
399+
go-version-file: 'go.mod'
400+
- uses: hashicorp/setup-terraform@v3
401+
with:
402+
terraform_version: ${{ env.terraform_version }}
403+
terraform_wrapper: false
404+
- name: Migration Tests
405+
env:
406+
MONGODB_ATLAS_PUBLIC_KEY: ${{ secrets.MONGODB_ATLAS_PUBLIC_KEY_CLOUD_DEV_NETWORK }}
407+
MONGODB_ATLAS_PRIVATE_KEY: ${{ secrets.MONGODB_ATLAS_PRIVATE_KEY_CLOUD_DEV_NETWORK }}
408+
MONGODB_ATLAS_ORG_ID: ${{ vars.MONGODB_ATLAS_ORG_ID_CLOUD_DEV_NETWORK }}
409+
MONGODB_ATLAS_BASE_URL: ${{ vars.MONGODB_ATLAS_BASE_URL }}
410+
MONGODB_ATLAS_LAST_VERSION: ${{ needs.get-provider-version.outputs.provider_version }}
411+
TEST_REGEX: "^TestAccMigrationEncryption"
412+
run: make testacc
413+
serverless:
414+
needs: [ change-detection, get-provider-version ]
415+
if: ${{ needs.change-detection.outputs.serverless == 'true' || inputs.test_group == 'serverless' }}
416+
runs-on: ubuntu-latest
417+
steps:
418+
- name: Checkout
419+
uses: actions/checkout@v4
420+
- name: Set up Go
421+
uses: actions/setup-go@v5
422+
with:
423+
go-version-file: 'go.mod'
424+
- uses: hashicorp/setup-terraform@v3
425+
with:
426+
terraform_version: ${{ env.terraform_version }}
427+
terraform_wrapper: false
428+
- name: Migration Tests
429+
env:
430+
MONGODB_ATLAS_PUBLIC_KEY: ${{ secrets.MONGODB_ATLAS_PUBLIC_KEY_CLOUD_DEV }}
431+
MONGODB_ATLAS_PRIVATE_KEY: ${{ secrets.MONGODB_ATLAS_PRIVATE_KEY_CLOUD_DEV }}
432+
MONGODB_ATLAS_ORG_ID: ${{ vars.MONGODB_ATLAS_ORG_ID_CLOUD_DEV }}
433+
MONGODB_ATLAS_BASE_URL: ${{ vars.MONGODB_ATLAS_BASE_URL }}
434+
MONGODB_ATLAS_LAST_VERSION: ${{ needs.get-provider-version.outputs.provider_version }}
435+
TEST_REGEX: "^TestAccMigrationServerless"
436+
run: make testacc
437+

CONTRIBUTING.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,6 @@ You must also configure the following environment variables before running the t
139139
```
140140
~> **Notice:** It should be at least one team id up to 3 teams ids depending of acceptance testing using separator comma like this `teamId1,teamdId2,teamId3`.
141141

142-
- For skip acceptances testing that requires additional credentials such as AWS, AZURE and GCP:
143-
```bash
144-
export SKIP_TEST_EXTERNAL_CREDENTIALS=TRUE
145-
```
146-
147142
- For `Federated Settings` resource configuration:
148143
```bash
149144
$ export MONGODB_ATLAS_FEDERATION_SETTINGS_ID=<YOUR_FEDERATION_SETTINGS_ID>

internal/service/advancedcluster/resource_advanced_cluster_schema_migration_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"github.com/mongodb/terraform-provider-mongodbatlas/internal/service/advancedcluster"
99
)
1010

11-
func TestAccClusterRSAdvancedClusterMigrateState_empty_advancedConfig(t *testing.T) {
11+
func TestAccMigrationAdvancedCluster_empty_advancedConfig(t *testing.T) {
1212
v0State := map[string]any{
1313
"project_id": "test-id",
1414
"name": "test-cluster",
@@ -60,7 +60,7 @@ func TestAccClusterRSAdvancedClusterMigrateState_empty_advancedConfig(t *testing
6060
}
6161
}
6262

63-
func TestAccClusterRSAdvancedClusterV0StateUpgrade_ReplicationSpecs(t *testing.T) {
63+
func TestAccMigrationAdvancedCluster_v0StateUpgrade_ReplicationSpecs(t *testing.T) {
6464
v0State := map[string]any{
6565
"project_id": "test-id",
6666
"name": "test-cluster",

internal/service/advancedcluster/resource_advanced_cluster_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,6 @@ func TestAccClusterAdvancedCluster_multicloudSharded(t *testing.T) {
241241
}
242242

243243
func TestAccClusterAdvancedCluster_UnpausedToPaused(t *testing.T) {
244-
acc.SkipTest(t)
245244
var (
246245
cluster matlas.AdvancedCluster
247246
resourceName = "mongodbatlas_advanced_cluster.test"
@@ -297,7 +296,6 @@ func TestAccClusterAdvancedCluster_UnpausedToPaused(t *testing.T) {
297296
}
298297

299298
func TestAccClusterAdvancedCluster_PausedToUnpaused(t *testing.T) {
300-
acc.SkipTest(t)
301299
var (
302300
cluster matlas.AdvancedCluster
303301
resourceName = "mongodbatlas_advanced_cluster.test"

internal/service/atlasuser/data_source_atlas_user_test.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@ import (
1414
)
1515

1616
func TestAccConfigDSAtlasUser_ByUserID(t *testing.T) {
17-
acc.SkipIfTFAccNotDefined(t)
17+
if os.Getenv("TF_ACC") == "" { // needed while fetchUser is called from the test
18+
t.Skip()
19+
}
1820
var (
1921
dataSourceName = "data.mongodbatlas_atlas_user.test"
2022
userID = os.Getenv("MONGODB_ATLAS_PROJECT_OWNER_ID")
2123
user = fetchUser(t, userID)
2224
)
2325
resource.Test(t, resource.TestCase{ // does not run in parallel to avoid changes in fetched user during execution
24-
PreCheck: func() { acc.PreCheckBasic(t); acc.PreCheckBasicOwnerID(t) },
26+
PreCheck: func() { acc.PreCheckBasicOwnerID(t) },
2527
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
2628
Steps: []resource.TestStep{
2729
{
@@ -35,14 +37,16 @@ func TestAccConfigDSAtlasUser_ByUserID(t *testing.T) {
3537
}
3638

3739
func TestAccConfigDSAtlasUser_ByUsername(t *testing.T) {
38-
acc.SkipIfTFAccNotDefined(t)
40+
if os.Getenv("TF_ACC") == "" { // needed while fetchUserByUsername is called from the test
41+
t.Skip()
42+
}
3943
var (
4044
dataSourceName = "data.mongodbatlas_atlas_user.test"
4145
username = os.Getenv("MONGODB_ATLAS_USERNAME")
4246
user = fetchUserByUsername(t, username)
4347
)
4448
resource.Test(t, resource.TestCase{ // does not run in parallel to avoid changes in fetched user during execution
45-
PreCheck: func() { acc.PreCheckBasic(t); acc.PreCheckAtlasUsername(t) },
49+
PreCheck: func() { acc.PreCheckAtlasUsername(t) },
4650
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
4751
Steps: []resource.TestStep{
4852
{

internal/service/atlasuser/data_source_atlas_users_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ import (
1616
)
1717

1818
func TestAccConfigDSAtlasUsers_ByOrgID(t *testing.T) {
19-
acc.SkipIfTFAccNotDefined(t)
19+
if os.Getenv("TF_ACC") == "" { // needed while fetchOrgUsers is called from the test
20+
t.Skip()
21+
}
2022
var (
2123
dataSourceName = "data.mongodbatlas_atlas_users.test"
2224
orgID = os.Getenv("MONGODB_ATLAS_ORG_ID")
@@ -46,7 +48,7 @@ func TestAccConfigDSAtlasUsers_ByProjectID(t *testing.T) {
4648
)
4749

4850
resource.ParallelTest(t, resource.TestCase{
49-
PreCheck: func() { acc.PreCheckBasic(t); acc.PreCheckBasicOwnerID(t) },
51+
PreCheck: func() { acc.PreCheckBasicOwnerID(t) },
5052
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
5153
CheckDestroy: acc.CheckDestroyProject,
5254
Steps: []resource.TestStep{
@@ -77,7 +79,7 @@ func TestAccConfigDSAtlasUsers_ByTeamID(t *testing.T) {
7779
)
7880

7981
resource.ParallelTest(t, resource.TestCase{
80-
PreCheck: func() { acc.PreCheckBasic(t); acc.PreCheckAtlasUsername(t) },
82+
PreCheck: func() { acc.PreCheckAtlasUsername(t) },
8183
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
8284
CheckDestroy: acc.CheckDestroyTeam,
8385
Steps: []resource.TestStep{
@@ -111,7 +113,7 @@ func TestAccConfigDSAtlasUsers_UsingPagination(t *testing.T) {
111113
)
112114

113115
resource.ParallelTest(t, resource.TestCase{
114-
PreCheck: func() { acc.PreCheckBasic(t); acc.PreCheckAtlasUsername(t) },
116+
PreCheck: func() { acc.PreCheckAtlasUsername(t) },
115117
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
116118
CheckDestroy: acc.CheckDestroyTeam,
117119
Steps: []resource.TestStep{

internal/service/cloudbackupschedule/resource_cloud_backup_schedule_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func TestAccBackupRSCloudBackupSchedule_basic(t *testing.T) {
138138
}
139139

140140
func TestAccBackupRSCloudBackupSchedule_export(t *testing.T) {
141-
acc.SkipTestExtCred(t)
141+
acc.SkipTestForCI(t)
142142
var (
143143
resourceName = "mongodbatlas_cloud_backup_schedule.schedule_test"
144144
orgID = os.Getenv("MONGODB_ATLAS_ORG_ID")

internal/service/cloudbackupsnapshotexportbucket/data_source_cloud_backup_snapshot_export_bucket_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
)
1212

1313
func TestAccBackupDSCloudBackupSnapshotExportBucket_basic(t *testing.T) {
14-
acc.SkipTestExtCred(t)
14+
acc.SkipTestForCI(t)
1515
var (
1616
snapshotExportBackup matlas.CloudProviderSnapshotExportBucket
1717
projectID = os.Getenv("MONGODB_ATLAS_PROJECT_ID")

0 commit comments

Comments
 (0)