Skip to content

Commit abcb609

Browse files
authored
chore: Uses mocks for unit tests in Atlas Go SDK (#2075)
* remove mockery config * use admin mocks * revert .mockery.yaml update in SDK Update GH action
1 parent cb37bc6 commit abcb609

File tree

14 files changed

+16
-10245
lines changed

14 files changed

+16
-10245
lines changed

.github/workflows/code-health.yml

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,6 @@ jobs:
2020
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
2121
with:
2222
go-version-file: 'go.mod'
23-
- name: Mock generation
24-
run: make tools generate-mocks
25-
- name: Check for uncommited files
26-
run: |
27-
FILES=$(git ls-files -o -m --directory --exclude-standard --no-empty-directory)
28-
LINES=$(echo "$FILES" | awk 'NF' | wc -l)
29-
if [ "${LINES}" -ne 0 ]; then
30-
echo "Detected files that need to be committed:"
31-
echo "${FILES//^/ }"
32-
echo ""
33-
echo "Mock skeletons are not up-to-date, you may have forgotten to run mockery before committing your changes."
34-
exit 1
35-
fi
3623
- name: Build
3724
run: make build
3825
unit-test:

.mockery.yaml

Lines changed: 0 additions & 15 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ To do this you can:
312312
- Helper methods must have their own tests, e.g. `common_advanced_cluster_test.go` has tests for `common_advanced_cluster.go`.
313313
- `internal/testutils/acc` contains helper test methods for Acceptance and Migration tests.
314314
- Tests that need the provider binary like End-to-End tests don’t belong to the source code packages and go in `test/e2e`.
315-
- [Testify Mock](https://pkg.go.dev/github.com/stretchr/testify/mock) and [Mockery](https://github.com/vektra/mockery) are used for test doubles in unit tests. Mocked interfaces are generated in folder `internal/testutil/mocksvc`.
315+
- [Testify Mock](https://pkg.go.dev/github.com/stretchr/testify/mock) and [Mockery](https://github.com/vektra/mockery) are used for test doubles in Atlas Go SDK unit tests.
316316

317317

318318
### Creating New Resource and Data Sources

GNUmakefile

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ VERSION=$(GITTAG:v%=%)
1818
LINKER_FLAGS=-s -w -X 'github.com/mongodb/terraform-provider-mongodbatlas/version.ProviderVersion=${VERSION}'
1919

2020
GOLANGCI_VERSION=v1.56.2
21-
MOCKERY_VERSION=v2.42.0
2221

2322
export PATH := $(shell go env GOPATH)/bin:$(PATH)
2423
export SHELL := env PATH=$(PATH) /bin/bash
@@ -79,7 +78,6 @@ tools: ## Install dev tools
7978
go install github.com/terraform-linters/[email protected]
8079
go install github.com/rhysd/actionlint/cmd/actionlint@latest
8180
go install golang.org/x/tools/go/analysis/passes/fieldalignment/cmd/fieldalignment@latest
82-
go install github.com/vektra/mockery/v2@$(MOCKERY_VERSION)
8381
go install github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs@latest
8482
go install github.com/hashicorp/terraform-plugin-codegen-openapi/cmd/tfplugingen-openapi@latest
8583
go install github.com/hashicorp/terraform-plugin-codegen-framework/cmd/tfplugingen-framework@latest
@@ -112,10 +110,6 @@ link-git-hooks: ## Install git hooks
112110
update-atlas-sdk: ## Update the atlas-sdk dependency
113111
./scripts/update-sdk.sh
114112

115-
.PHONY: generate-mocks
116-
generate-mocks: # uses mockery to generate mocks in folder `internal/testutil/mocksvc`
117-
mockery
118-
119113
# e.g. run: make scaffold resource_name=streamInstance type=resource
120114
# - type argument can have the values: `resource`, `data-source`, `plural-data-source`.
121115
# details on usage can be found in CONTRIBUTING.md under "Scaffolding initial Code and File Structure"

internal/service/advancedcluster/model_advanced_cluster_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import (
88

99
"github.com/mongodb/terraform-provider-mongodbatlas/internal/common/conversion"
1010
"github.com/mongodb/terraform-provider-mongodbatlas/internal/service/advancedcluster"
11-
"github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/mocksvc"
1211
"github.com/stretchr/testify/assert"
1312
"github.com/stretchr/testify/mock"
1413
"go.mongodb.org/atlas-sdk/v20231115008/admin"
14+
"go.mongodb.org/atlas-sdk/v20231115008/mockadmin"
1515
)
1616

1717
var (
@@ -104,7 +104,7 @@ func TestUpgradeRefreshFunc(t *testing.T) {
104104

105105
for _, tc := range testCases {
106106
t.Run(tc.name, func(t *testing.T) {
107-
testObject := mocksvc.NewClustersApi(t)
107+
testObject := mockadmin.NewClustersApi(t)
108108

109109
testObject.EXPECT().GetCluster(mock.Anything, mock.Anything, mock.Anything).Return(admin.GetClusterApiRequest{ApiService: testObject}).Once()
110110
testObject.EXPECT().GetClusterExecute(mock.Anything).Return(tc.mockCluster, tc.mockResponse, tc.mockError).Once()
@@ -209,7 +209,7 @@ func TestResourceListAdvancedRefreshFunc(t *testing.T) {
209209

210210
for _, tc := range testCases {
211211
t.Run(tc.name, func(t *testing.T) {
212-
testObject := mocksvc.NewClustersApi(t)
212+
testObject := mockadmin.NewClustersApi(t)
213213

214214
testObject.EXPECT().ListClusters(mock.Anything, mock.Anything).Return(admin.ListClustersApiRequest{ApiService: testObject}).Once()
215215
testObject.EXPECT().ListClustersExecute(mock.Anything).Return(tc.mockCluster, tc.mockResponse, tc.mockError).Once()

internal/service/encryptionatrest/resource_encryption_at_rest_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ import (
1414
"github.com/mongodb/terraform-provider-mongodbatlas/internal/common/retrystrategy"
1515
"github.com/mongodb/terraform-provider-mongodbatlas/internal/service/encryptionatrest"
1616
"github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/acc"
17-
"github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/mocksvc"
1817
"github.com/stretchr/testify/assert"
1918
"github.com/stretchr/testify/mock"
2019
"go.mongodb.org/atlas-sdk/v20231115008/admin"
20+
"go.mongodb.org/atlas-sdk/v20231115008/mockadmin"
2121
)
2222

2323
const (
@@ -546,7 +546,7 @@ func TestResourceMongoDBAtlasEncryptionAtRestCreateRefreshFunc(t *testing.T) {
546546
}
547547
for _, tc := range testCases {
548548
t.Run(tc.name, func(t *testing.T) {
549-
m := mocksvc.NewEncryptionAtRestUsingCustomerKeyManagementApi(t)
549+
m := mockadmin.NewEncryptionAtRestUsingCustomerKeyManagementApi(t)
550550

551551
m.EXPECT().UpdateEncryptionAtRest(mock.Anything, mock.Anything, mock.Anything).Return(admin.UpdateEncryptionAtRestApiRequest{ApiService: m})
552552
m.EXPECT().UpdateEncryptionAtRestExecute(mock.Anything).Return(tc.mockResponse, nil, tc.mockError).Once()

internal/service/project/resource_project_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ import (
1515

1616
"github.com/mongodb/terraform-provider-mongodbatlas/internal/service/project"
1717
"github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/acc"
18-
"github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/mocksvc"
1918
"github.com/stretchr/testify/mock"
2019
"go.mongodb.org/atlas-sdk/v20231115008/admin"
20+
"go.mongodb.org/atlas-sdk/v20231115008/mockadmin"
2121
)
2222

2323
var (
@@ -106,8 +106,8 @@ func TestGetProjectPropsFromAPI(t *testing.T) {
106106

107107
for _, tc := range testCases {
108108
t.Run(tc.name, func(t *testing.T) {
109-
teamsMock := mocksvc.NewTeamsApi(t)
110-
projectsMock := mocksvc.NewProjectsApi(t)
109+
teamsMock := mockadmin.NewTeamsApi(t)
110+
projectsMock := mockadmin.NewProjectsApi(t)
111111

112112
teamsMock.EXPECT().ListProjectTeams(mock.Anything, mock.Anything).Return(admin.ListProjectTeamsApiRequest{ApiService: teamsMock})
113113
teamsMock.EXPECT().ListProjectTeamsExecute(mock.Anything).Return(tc.teamRoleReponse.TeamRole, tc.teamRoleReponse.HTTPResponse, tc.teamRoleReponse.Err)
@@ -218,7 +218,7 @@ func TestUpdateProject(t *testing.T) {
218218

219219
for i, tc := range testCases {
220220
t.Run(tc.name, func(t *testing.T) {
221-
svc := mocksvc.NewProjectsApi(t)
221+
svc := mockadmin.NewProjectsApi(t)
222222
svc.EXPECT().UpdateProject(mock.Anything, mock.Anything, mock.Anything).Return(admin.UpdateProjectApiRequest{ApiService: svc}).Maybe()
223223

224224
svc.EXPECT().UpdateProjectExecute(mock.Anything).Return(tc.mockResponses.Project, tc.mockResponses.HTTPResponse, tc.mockResponses.Err).Maybe()
@@ -324,7 +324,7 @@ func TestUpdateProjectLimits(t *testing.T) {
324324

325325
for i, tc := range testCases {
326326
t.Run(tc.name, func(t *testing.T) {
327-
svc := mocksvc.NewProjectsApi(t)
327+
svc := mockadmin.NewProjectsApi(t)
328328

329329
svc.EXPECT().DeleteProjectLimit(mock.Anything, mock.Anything, mock.Anything).Return(admin.DeleteProjectLimitApiRequest{ApiService: svc}).Maybe()
330330
svc.EXPECT().DeleteProjectLimitExecute(mock.Anything).Return(tc.mockResponses.DeleteProjectLimit, tc.mockResponses.HTTPResponse, tc.mockResponses.Err).Maybe()
@@ -417,7 +417,7 @@ func TestUpdateProjectTeams(t *testing.T) {
417417

418418
for i, tc := range testCases {
419419
t.Run(tc.name, func(t *testing.T) {
420-
svc := mocksvc.NewTeamsApi(t)
420+
svc := mockadmin.NewTeamsApi(t)
421421

422422
svc.EXPECT().AddAllTeamsToProject(mock.Anything, mock.Anything, mock.Anything).Return(admin.AddAllTeamsToProjectApiRequest{ApiService: svc}).Maybe()
423423
svc.EXPECT().AddAllTeamsToProjectExecute(mock.Anything).Return(nil, nil, nil).Maybe()
@@ -477,7 +477,7 @@ func TestResourceProjectDependentsDeletingRefreshFunc(t *testing.T) {
477477

478478
for _, tc := range testCases {
479479
t.Run(tc.name, func(t *testing.T) {
480-
svc := mocksvc.NewClustersApi(t)
480+
svc := mockadmin.NewClustersApi(t)
481481

482482
svc.EXPECT().ListClusters(mock.Anything, dummyProjectID).Return(admin.ListClustersApiRequest{ApiService: svc})
483483
svc.EXPECT().ListClustersExecute(mock.Anything).Return(tc.mockResponses.AdvancedClusterDescription, tc.mockResponses.HTTPResponse, tc.mockResponses.Err)

internal/service/searchdeployment/state_transition_search_deployment_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ import (
1010
"github.com/mongodb/terraform-provider-mongodbatlas/internal/common/conversion"
1111
"github.com/mongodb/terraform-provider-mongodbatlas/internal/common/retrystrategy"
1212
"github.com/mongodb/terraform-provider-mongodbatlas/internal/service/searchdeployment"
13-
"github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/mocksvc"
1413
"github.com/stretchr/testify/assert"
1514
"github.com/stretchr/testify/mock"
1615
"go.mongodb.org/atlas-sdk/v20231115008/admin"
16+
"go.mongodb.org/atlas-sdk/v20231115008/mockadmin"
1717
)
1818

1919
var (
@@ -74,7 +74,7 @@ func TestSearchDeploymentStateTransition(t *testing.T) {
7474

7575
for _, tc := range testCases {
7676
t.Run(tc.name, func(t *testing.T) {
77-
m := mocksvc.NewAtlasSearchApi(t)
77+
m := mockadmin.NewAtlasSearchApi(t)
7878
m.EXPECT().GetAtlasSearchDeployment(mock.Anything, mock.Anything, mock.Anything).Return(admin.GetAtlasSearchDeploymentApiRequest{ApiService: m})
7979

8080
for _, resp := range tc.mockResponses {
@@ -117,7 +117,7 @@ func TestSearchDeploymentStateTransitionForDelete(t *testing.T) {
117117

118118
for _, tc := range testCases {
119119
t.Run(tc.name, func(t *testing.T) {
120-
m := mocksvc.NewAtlasSearchApi(t)
120+
m := mockadmin.NewAtlasSearchApi(t)
121121
m.EXPECT().GetAtlasSearchDeployment(mock.Anything, mock.Anything, mock.Anything).Return(admin.GetAtlasSearchDeploymentApiRequest{ApiService: m})
122122

123123
for _, resp := range tc.mockResponses {

0 commit comments

Comments
 (0)