From 74714d3dc08a431f3ef391a2754132be8981fa48 Mon Sep 17 00:00:00 2001 From: Gustavo Bazan Date: Fri, 11 Aug 2023 10:10:55 +0100 Subject: [PATCH] CLOUDP-194831: Fix and validate templates for all cloud provider access commands (#2151) --- ...s-cloudProviders-accessRoles-aws-authorize.txt | 2 +- ...tlas-cloudProviders-accessRoles-aws-create.txt | 6 +++--- ...s-cloudProviders-accessRoles-aws-authorize.txt | 2 +- ...tlas-cloudProviders-accessRoles-aws-create.txt | 6 +++--- .../cloudproviders/accessroles/aws/authorize.go | 2 +- .../accessroles/aws/authorize_test.go | 10 ++++++---- .../cloudproviders/accessroles/aws/create.go | 6 +++--- .../cloudproviders/accessroles/aws/create_test.go | 9 ++++++--- .../accessroles/aws/deauthorize_test.go | 15 ++++++++++++--- .../atlas/cloudproviders/accessroles/list_test.go | 11 ++++++----- 10 files changed, 42 insertions(+), 27 deletions(-) diff --git a/docs/atlascli/command/atlas-cloudProviders-accessRoles-aws-authorize.txt b/docs/atlascli/command/atlas-cloudProviders-accessRoles-aws-authorize.txt index b89fa36eae..d5b3591d2c 100644 --- a/docs/atlascli/command/atlas-cloudProviders-accessRoles-aws-authorize.txt +++ b/docs/atlascli/command/atlas-cloudProviders-accessRoles-aws-authorize.txt @@ -91,6 +91,6 @@ If the command succeeds, the CLI returns output similar to the following sample. .. code-block:: - AWS IAM role ' successfully authorized. + AWS IAM role ' successfully authorized. diff --git a/docs/atlascli/command/atlas-cloudProviders-accessRoles-aws-create.txt b/docs/atlascli/command/atlas-cloudProviders-accessRoles-aws-create.txt index b50b80024d..dc9882e300 100644 --- a/docs/atlascli/command/atlas-cloudProviders-accessRoles-aws-create.txt +++ b/docs/atlascli/command/atlas-cloudProviders-accessRoles-aws-create.txt @@ -73,8 +73,8 @@ If the command succeeds, the CLI returns output similar to the following sample. .. code-block:: - AWS IAM role '' successfully created. - Atlas AWS Account ARN: - Unique External ID: + AWS IAM role '' successfully created. + Atlas AWS Account ARN: + Unique External ID: diff --git a/docs/mongocli/command/mongocli-atlas-cloudProviders-accessRoles-aws-authorize.txt b/docs/mongocli/command/mongocli-atlas-cloudProviders-accessRoles-aws-authorize.txt index d2d8a85c92..a82094ce51 100644 --- a/docs/mongocli/command/mongocli-atlas-cloudProviders-accessRoles-aws-authorize.txt +++ b/docs/mongocli/command/mongocli-atlas-cloudProviders-accessRoles-aws-authorize.txt @@ -91,6 +91,6 @@ If the command succeeds, the CLI returns output similar to the following sample. .. code-block:: - AWS IAM role ' successfully authorized. + AWS IAM role ' successfully authorized. diff --git a/docs/mongocli/command/mongocli-atlas-cloudProviders-accessRoles-aws-create.txt b/docs/mongocli/command/mongocli-atlas-cloudProviders-accessRoles-aws-create.txt index c83a2c5b0f..f59f8f7c93 100644 --- a/docs/mongocli/command/mongocli-atlas-cloudProviders-accessRoles-aws-create.txt +++ b/docs/mongocli/command/mongocli-atlas-cloudProviders-accessRoles-aws-create.txt @@ -73,8 +73,8 @@ If the command succeeds, the CLI returns output similar to the following sample. .. code-block:: - AWS IAM role '' successfully created. - Atlas AWS Account ARN: - Unique External ID: + AWS IAM role '' successfully created. + Atlas AWS Account ARN: + Unique External ID: diff --git a/internal/cli/atlas/cloudproviders/accessroles/aws/authorize.go b/internal/cli/atlas/cloudproviders/accessroles/aws/authorize.go index 57e1e546c1..cd54445ae9 100644 --- a/internal/cli/atlas/cloudproviders/accessroles/aws/authorize.go +++ b/internal/cli/atlas/cloudproviders/accessroles/aws/authorize.go @@ -27,7 +27,7 @@ import ( atlas "go.mongodb.org/atlas/mongodbatlas" ) -const authorizeTemplate = "AWS IAM role '{{.CloudProviderAccessAWSIAMRole.RoleId}} successfully authorized.\n" +const authorizeTemplate = "AWS IAM role '{{.RoleId}} successfully authorized.\n" type AuthorizeOpts struct { cli.GlobalOpts diff --git a/internal/cli/atlas/cloudproviders/accessroles/aws/authorize_test.go b/internal/cli/atlas/cloudproviders/accessroles/aws/authorize_test.go index 2b147b7276..36ec5f6b4a 100644 --- a/internal/cli/atlas/cloudproviders/accessroles/aws/authorize_test.go +++ b/internal/cli/atlas/cloudproviders/accessroles/aws/authorize_test.go @@ -23,9 +23,14 @@ import ( "github.com/mongodb/mongodb-atlas-cli/internal/flag" "github.com/mongodb/mongodb-atlas-cli/internal/mocks" "github.com/mongodb/mongodb-atlas-cli/internal/test" + "github.com/stretchr/testify/require" atlasv2 "go.mongodb.org/atlas-sdk/v20230201004/admin" ) +func TestAuthorizeTemplate(t *testing.T) { + test.VerifyOutputTemplate(t, authorizeTemplate, atlasv2.CloudProviderAccessRole{}) +} + func TestAuthorizeOpts_Run(t *testing.T) { ctrl := gomock.NewController(t) mockStore := mocks.NewMockCloudProviderAccessRoleAuthorizer(ctrl) @@ -41,10 +46,7 @@ func TestAuthorizeOpts_Run(t *testing.T) { AuthorizeCloudProviderAccessRole(opts.ProjectID, opts.roleID, opts.newCloudProviderAuthorizationRequest()). Return(expected, nil). Times(1) - - if err := opts.Run(); err != nil { - t.Fatalf("Run() unexpected error: %v", err) - } + require.NoError(t, opts.Run()) } func TestAuthorizeBuilder(t *testing.T) { diff --git a/internal/cli/atlas/cloudproviders/accessroles/aws/create.go b/internal/cli/atlas/cloudproviders/accessroles/aws/create.go index 0307f17035..a3712d7d66 100644 --- a/internal/cli/atlas/cloudproviders/accessroles/aws/create.go +++ b/internal/cli/atlas/cloudproviders/accessroles/aws/create.go @@ -29,9 +29,9 @@ import ( const ( provider = "AWS" - createTemplate = `AWS IAM role '{{.CloudProviderAccessAWSIAMRole.RoleId}}' successfully created. -Atlas AWS Account ARN: {{.CloudProviderAccessAWSIAMRole.AtlasAWSAccountArn}} -Unique External ID: {{.CloudProviderAccessAWSIAMRole.AtlasAssumedRoleExternalId}} + createTemplate = `AWS IAM role '{{.RoleId}}' successfully created. +Atlas AWS Account ARN: {{.AtlasAWSAccountArn}} +Unique External ID: {{.AtlasAssumedRoleExternalId}} ` ) diff --git a/internal/cli/atlas/cloudproviders/accessroles/aws/create_test.go b/internal/cli/atlas/cloudproviders/accessroles/aws/create_test.go index 67268486b9..3fde121de5 100644 --- a/internal/cli/atlas/cloudproviders/accessroles/aws/create_test.go +++ b/internal/cli/atlas/cloudproviders/accessroles/aws/create_test.go @@ -23,9 +23,14 @@ import ( "github.com/mongodb/mongodb-atlas-cli/internal/flag" "github.com/mongodb/mongodb-atlas-cli/internal/mocks" "github.com/mongodb/mongodb-atlas-cli/internal/test" + "github.com/stretchr/testify/require" atlasv2 "go.mongodb.org/atlas-sdk/v20230201004/admin" ) +func TestCreateTemplate(t *testing.T) { + test.VerifyOutputTemplate(t, createTemplate, atlasv2.CloudProviderAccessRole{}) +} + func TestCreateOpts_Run(t *testing.T) { ctrl := gomock.NewController(t) mockStore := mocks.NewMockCloudProviderAccessRoleCreator(ctrl) @@ -42,9 +47,7 @@ func TestCreateOpts_Run(t *testing.T) { Return(expected, nil). Times(1) - if err := createOpts.Run(); err != nil { - t.Fatalf("Run() unexpected error: %v", err) - } + require.NoError(t, createOpts.Run()) } func TestCreateBuilder(t *testing.T) { diff --git a/internal/cli/atlas/cloudproviders/accessroles/aws/deauthorize_test.go b/internal/cli/atlas/cloudproviders/accessroles/aws/deauthorize_test.go index 0f6b78a5b9..396fc345e6 100644 --- a/internal/cli/atlas/cloudproviders/accessroles/aws/deauthorize_test.go +++ b/internal/cli/atlas/cloudproviders/accessroles/aws/deauthorize_test.go @@ -24,8 +24,19 @@ import ( "github.com/mongodb/mongodb-atlas-cli/internal/flag" "github.com/mongodb/mongodb-atlas-cli/internal/mocks" "github.com/mongodb/mongodb-atlas-cli/internal/test" + "github.com/stretchr/testify/require" + atlasv2 "go.mongodb.org/atlas-sdk/v20230201004/admin" ) +func TestDeauthorizeTemplate(t *testing.T) { + t.Run("success", func(t *testing.T) { + test.VerifyOutputTemplate(t, deauthorizeSuccess, atlasv2.CloudProviderAccessRole{}) + }) + t.Run("fail", func(t *testing.T) { + test.VerifyOutputTemplate(t, deauthorizeFail, atlasv2.CloudProviderAccessRole{}) + }) +} + func TestDeauthorizeOpts_Run(t *testing.T) { ctrl := gomock.NewController(t) mockStore := mocks.NewMockCloudProviderAccessRoleDeauthorizer(ctrl) @@ -44,9 +55,7 @@ func TestDeauthorizeOpts_Run(t *testing.T) { Return(nil). Times(1) - if err := opts.Run(); err != nil { - t.Fatalf("Run() unexpected error: %v", err) - } + require.NoError(t, opts.Run()) } func TestDeauthorizeBuilder(t *testing.T) { diff --git a/internal/cli/atlas/cloudproviders/accessroles/list_test.go b/internal/cli/atlas/cloudproviders/accessroles/list_test.go index 82b9764be0..3662805381 100644 --- a/internal/cli/atlas/cloudproviders/accessroles/list_test.go +++ b/internal/cli/atlas/cloudproviders/accessroles/list_test.go @@ -26,9 +26,14 @@ import ( "github.com/mongodb/mongodb-atlas-cli/internal/mocks" "github.com/mongodb/mongodb-atlas-cli/internal/pointer" "github.com/mongodb/mongodb-atlas-cli/internal/test" + "github.com/stretchr/testify/require" atlasv2 "go.mongodb.org/atlas-sdk/v20230201004/admin" ) +func TestListTemplate_Run(t *testing.T) { + test.VerifyOutputTemplate(t, listTemplate, atlasv2.CloudProviderAccessRoles{}) +} + func TestList_Run(t *testing.T) { ctrl := gomock.NewController(t) mockStore := mocks.NewMockCloudProviderAccessRoleLister(ctrl) @@ -58,12 +63,8 @@ func TestList_Run(t *testing.T) { Return(expected, nil). Times(1) - if err := listOpts.Run(); err != nil { - t.Fatalf("Run() unexpected error: %v", err) - } - + require.NoError(t, listOpts.Run()) t.Log(buf.String()) - test.VerifyOutputTemplate(t, listTemplate, expected) } func TestListBuilder(t *testing.T) {