Skip to content

Commit b3c0060

Browse files
authored
style: small code clean up and tests (#509)
1 parent 6162d44 commit b3c0060

File tree

10 files changed

+207
-73
lines changed

10 files changed

+207
-73
lines changed

cmd/mongocli/mongocli.go

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,18 +84,14 @@ var (
8484
)
8585

8686
func init() { //nolint:gochecknoinits // This is the cobra way
87-
// config commands
88-
rootCmd.AddCommand(cliconfig.Builder())
89-
// Atlas commands
90-
rootCmd.AddCommand(atlas.Builder())
91-
// CM commands
92-
rootCmd.AddCommand(cloudmanager.Builder())
93-
// OM commands
94-
rootCmd.AddCommand(opsmanager.Builder())
95-
// IAM commands
96-
rootCmd.AddCommand(iam.Builder())
97-
98-
rootCmd.AddCommand(completionCmd)
87+
rootCmd.AddCommand(
88+
cliconfig.Builder(),
89+
atlas.Builder(),
90+
cloudmanager.Builder(),
91+
opsmanager.Builder(),
92+
iam.Builder(),
93+
completionCmd,
94+
)
9995

10096
cobra.EnableCommandSorting = false
10197

internal/cli/alerts/acknowledge_test.go

Lines changed: 76 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,36 +17,93 @@
1717
package alerts
1818

1919
import (
20+
"errors"
2021
"testing"
2122

2223
"github.com/golang/mock/gomock"
24+
"github.com/mongodb/mongocli/internal/cli"
25+
"github.com/mongodb/mongocli/internal/flag"
2326
"github.com/mongodb/mongocli/internal/mocks"
27+
"github.com/stretchr/testify/assert"
2428
"go.mongodb.org/atlas/mongodbatlas"
2529
)
2630

27-
func TestAcknowledge_Run(t *testing.T) {
31+
func TestAcknowledgeBuilder(t *testing.T) {
32+
cli.CmdValidator(
33+
t,
34+
AcknowledgeBuilder(),
35+
0,
36+
[]string{
37+
flag.Forever,
38+
flag.Until,
39+
flag.Comment,
40+
flag.ProjectID,
41+
flag.Output,
42+
},
43+
)
44+
}
45+
46+
func TestAcknowledgeOpts_Run(t *testing.T) {
2847
ctrl := gomock.NewController(t)
2948
mockStore := mocks.NewMockAlertAcknowledger(ctrl)
3049
defer ctrl.Finish()
3150

32-
expected := &mongodbatlas.Alert{}
33-
34-
acknowledgeOpts := &AcknowledgeOpts{
35-
alertID: "533dc40ae4b00835ff81eaee",
36-
comment: "Test",
37-
store: mockStore,
51+
tests := []struct {
52+
name string
53+
opts AcknowledgeOpts
54+
wantErr bool
55+
}{
56+
{
57+
name: "default",
58+
opts: AcknowledgeOpts{
59+
alertID: "533dc40ae4b00835ff81eaee",
60+
comment: "Test",
61+
store: mockStore,
62+
},
63+
wantErr: false,
64+
},
65+
{
66+
name: "forever",
67+
opts: AcknowledgeOpts{
68+
alertID: "533dc40ae4b00835ff81eaee",
69+
comment: "Test",
70+
forever: true,
71+
store: mockStore,
72+
},
73+
wantErr: false,
74+
},
75+
{
76+
name: "with error",
77+
opts: AcknowledgeOpts{
78+
alertID: "533dc40ae4b00835ff81eaee",
79+
comment: "Test",
80+
forever: true,
81+
store: mockStore,
82+
},
83+
wantErr: true,
84+
},
3885
}
39-
40-
ackReq := acknowledgeOpts.newAcknowledgeRequest()
41-
42-
mockStore.
43-
EXPECT().
44-
AcknowledgeAlert(acknowledgeOpts.ProjectID, acknowledgeOpts.alertID, ackReq).
45-
Return(expected, nil).
46-
Times(1)
47-
48-
err := acknowledgeOpts.Run()
49-
if err != nil {
50-
t.Fatalf("Run() unexpected error: %v", err)
86+
for _, tt := range tests {
87+
opts := tt.opts
88+
wantErr := tt.wantErr
89+
t.Run(tt.name, func(t *testing.T) {
90+
ackReq := opts.newAcknowledgeRequest()
91+
if wantErr {
92+
mockStore.
93+
EXPECT().
94+
AcknowledgeAlert(opts.ProjectID, opts.alertID, ackReq).
95+
Return(nil, errors.New("fake")).
96+
Times(1)
97+
assert.Error(t, opts.Run())
98+
} else {
99+
expected := &mongodbatlas.Alert{}
100+
mockStore.
101+
EXPECT().
102+
AcknowledgeAlert(opts.ProjectID, opts.alertID, ackReq).
103+
Return(expected, nil).
104+
Times(1)
105+
assert.NoError(t, opts.Run())
106+
}
107+
})
51108
}
52109
}

internal/cli/alerts/alerts.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,14 @@ func Builder() *cobra.Command {
2828
Short: short,
2929
}
3030

31-
cmd.AddCommand(settings.Builder())
32-
cmd.AddCommand(DescribeBuilder())
33-
cmd.AddCommand(ListBuilder())
34-
cmd.AddCommand(AcknowledgeBuilder())
35-
cmd.AddCommand(UnacknowledgeBuilder())
36-
cmd.AddCommand(GlobalBuilder())
31+
cmd.AddCommand(
32+
settings.Builder(),
33+
DescribeBuilder(),
34+
ListBuilder(),
35+
AcknowledgeBuilder(),
36+
UnacknowledgeBuilder(),
37+
GlobalBuilder(),
38+
)
3739

3840
return cmd
3941
}

internal/cli/alerts/describe_test.go

Lines changed: 59 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,76 @@
1717
package alerts
1818

1919
import (
20+
"errors"
2021
"testing"
2122

2223
"github.com/golang/mock/gomock"
24+
"github.com/mongodb/mongocli/internal/cli"
25+
"github.com/mongodb/mongocli/internal/flag"
2326
"github.com/mongodb/mongocli/internal/mocks"
27+
"github.com/stretchr/testify/assert"
2428
"go.mongodb.org/atlas/mongodbatlas"
2529
)
2630

27-
func TestDescribe_Run(t *testing.T) {
31+
func TestDescribeBuilder(t *testing.T) {
32+
cli.CmdValidator(
33+
t,
34+
DescribeBuilder(),
35+
0,
36+
[]string{
37+
flag.ProjectID,
38+
flag.Output,
39+
},
40+
)
41+
}
42+
43+
func TestDescribeOpts_Run(t *testing.T) {
2844
ctrl := gomock.NewController(t)
2945
mockStore := mocks.NewMockAlertDescriber(ctrl)
3046
defer ctrl.Finish()
3147

32-
expected := &mongodbatlas.Alert{}
33-
34-
describeOpts := &DescribeOpts{
35-
alertID: "533dc40ae4b00835ff81eaee",
36-
store: mockStore,
48+
tests := []struct {
49+
name string
50+
cmd *DescribeOpts
51+
wantErr bool
52+
}{
53+
{
54+
name: "default",
55+
cmd: &DescribeOpts{
56+
alertID: "533dc40ae4b00835ff81eaee",
57+
store: mockStore,
58+
},
59+
wantErr: false,
60+
},
61+
{
62+
name: "default",
63+
cmd: &DescribeOpts{
64+
alertID: "533dc40ae4b00835ff81eaee",
65+
store: mockStore,
66+
},
67+
wantErr: true,
68+
},
3769
}
38-
39-
mockStore.
40-
EXPECT().
41-
Alert(describeOpts.ProjectID, describeOpts.alertID).
42-
Return(expected, nil).
43-
Times(1)
44-
45-
err := describeOpts.Run()
46-
if err != nil {
47-
t.Fatalf("Run() unexpected error: %v", err)
70+
for _, tt := range tests {
71+
cmd := tt.cmd
72+
wantErr := tt.wantErr
73+
t.Run(tt.name, func(t *testing.T) {
74+
if wantErr {
75+
mockStore.
76+
EXPECT().
77+
Alert(cmd.ProjectID, cmd.alertID).
78+
Return(nil, errors.New("fake")).
79+
Times(1)
80+
assert.Error(t, cmd.Run())
81+
} else {
82+
expected := &mongodbatlas.Alert{}
83+
mockStore.
84+
EXPECT().
85+
Alert(cmd.ProjectID, cmd.alertID).
86+
Return(expected, nil).
87+
Times(1)
88+
assert.NoError(t, cmd.Run())
89+
}
90+
})
4891
}
4992
}

internal/cli/alerts/settings/create_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import (
2020
"testing"
2121

2222
"github.com/golang/mock/gomock"
23+
"github.com/mongodb/mongocli/internal/cli"
24+
"github.com/mongodb/mongocli/internal/flag"
2325
"github.com/mongodb/mongocli/internal/mocks"
2426
"go.mongodb.org/atlas/mongodbatlas"
2527
)
@@ -62,3 +64,18 @@ func TestCreate_Run(t *testing.T) {
6264
t.Fatalf("Run() unexpected error: %v", err)
6365
}
6466
}
67+
68+
func TestAcknowledgeBuilder(t *testing.T) {
69+
cli.CmdValidator(
70+
t,
71+
CreateBuilder(),
72+
0,
73+
[]string{
74+
flag.Event,
75+
flag.Enabled,
76+
flag.MatcherFieldName,
77+
flag.MatcherOperator,
78+
flag.Output,
79+
},
80+
)
81+
}

internal/cli/alerts/settings/settings.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,13 @@ func Builder() *cobra.Command {
161161
Long: long,
162162
}
163163

164-
cmd.AddCommand(CreateBuilder())
165-
cmd.AddCommand(ListBuilder())
166-
cmd.AddCommand(DeleteBuilder())
167-
cmd.AddCommand(FieldsBuilder())
168-
cmd.AddCommand(UpdateBuilder())
164+
cmd.AddCommand(
165+
CreateBuilder(),
166+
ListBuilder(),
167+
DeleteBuilder(),
168+
FieldsBuilder(),
169+
UpdateBuilder(),
170+
)
169171

170172
return cmd
171173
}

internal/cli/iam/users/delete_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121

2222
"github.com/golang/mock/gomock"
2323
"github.com/mongodb/mongocli/internal/cli"
24+
"github.com/mongodb/mongocli/internal/flag"
2425
"github.com/mongodb/mongocli/internal/mocks"
2526
)
2627

@@ -47,3 +48,13 @@ func TestDelete_Run(t *testing.T) {
4748
t.Fatalf("Run() unexpected error: %v", err)
4849
}
4950
}
51+
52+
func TestDeleteBuilder(t *testing.T) {
53+
cli.CmdValidator(t,
54+
DeleteBuilder(),
55+
0,
56+
[]string{
57+
flag.Force,
58+
},
59+
)
60+
}

internal/cli/opsmanager/clusters/clusters.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,17 @@ func Builder() *cobra.Command {
2727
Short: Clusters,
2828
}
2929

30-
cmd.AddCommand(ListBuilder())
31-
cmd.AddCommand(DescribeBuilder())
32-
cmd.AddCommand(CreateBuilder())
33-
cmd.AddCommand(ShutdownBuilder())
34-
cmd.AddCommand(StartupBuilder())
35-
cmd.AddCommand(UpdateBuilder())
36-
cmd.AddCommand(DeleteBuilder())
37-
cmd.AddCommand(ApplyBuilder())
38-
cmd.AddCommand(IndexesBuilder())
30+
cmd.AddCommand(
31+
ListBuilder(),
32+
DescribeBuilder(),
33+
CreateBuilder(),
34+
ShutdownBuilder(),
35+
StartupBuilder(),
36+
UpdateBuilder(),
37+
DeleteBuilder(),
38+
ApplyBuilder(),
39+
IndexesBuilder(),
40+
)
3941

4042
return cmd
4143
}

internal/cli/opsmanager/dbusers/dbusers.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,11 @@ func Builder() *cobra.Command {
2626
Long: DBUsersLong,
2727
}
2828

29-
cmd.AddCommand(CreateBuilder())
30-
cmd.AddCommand(ListBuilder())
31-
cmd.AddCommand(DeleteBuilder())
29+
cmd.AddCommand(
30+
CreateBuilder(),
31+
ListBuilder(),
32+
DeleteBuilder(),
33+
)
3234

3335
return cmd
3436
}

internal/cli/opsmanager/metrics/metrics.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@ func Builder() *cobra.Command {
2525
Short: Metrics,
2626
}
2727

28-
cmd.AddCommand(ProcessBuilder())
29-
cmd.AddCommand(DisksBuilder())
30-
cmd.AddCommand(DatabasesBuilder())
28+
cmd.AddCommand(
29+
ProcessBuilder(),
30+
DisksBuilder(),
31+
DatabasesBuilder(),
32+
)
3133

3234
return cmd
3335
}

0 commit comments

Comments
 (0)