Skip to content

Commit 11e33d0

Browse files
committed
replace boilerplate code with the util functions
1 parent c1a489c commit 11e33d0

File tree

5 files changed

+11
-145
lines changed

5 files changed

+11
-145
lines changed

internal/cmd/beta/logs/instance/create/create.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ func NewCmd(params *types.CmdParams) *cobra.Command {
5555
`Create a Logs instance with name "my-instance", retention time 10 days, and restrict access to a specific range of IP addresses.`,
5656
`$ stackit beta logs instance create --display-name "my-instance" --retention-days 10 --acl 1.2.3.0/24`),
5757
),
58-
RunE: func(cmd *cobra.Command, _ []string) error {
58+
RunE: func(cmd *cobra.Command, args []string) error {
5959
ctx := context.Background()
60-
model, err := parseInput(params.Printer, cmd)
60+
model, err := parseInput(params.Printer, cmd, args)
6161
if err != nil {
6262
return err
6363
}
@@ -123,7 +123,7 @@ func configureFlags(cmd *cobra.Command) {
123123
cobra.CheckErr(err)
124124
}
125125

126-
func parseInput(p *print.Printer, cmd *cobra.Command) (*inputModel, error) {
126+
func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel, error) {
127127
globalFlags := globalflags.Parse(p, cmd)
128128
if globalFlags.ProjectId == "" {
129129
return nil, &cliErr.ProjectIdError{}

internal/cmd/beta/logs/instance/create/create_test.go

Lines changed: 3 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import (
55
"strconv"
66
"testing"
77

8+
"github.com/stackitcloud/stackit-cli/internal/pkg/testutils"
89
"github.com/stackitcloud/stackit-cli/internal/pkg/types"
910
"github.com/stackitcloud/stackit-sdk-go/services/logs"
1011

1112
"github.com/google/go-cmp/cmp"
1213
"github.com/google/go-cmp/cmp/cmpopts"
1314
"github.com/google/uuid"
14-
"github.com/spf13/cobra"
1515
"github.com/stackitcloud/stackit-cli/internal/pkg/globalflags"
1616
"github.com/stackitcloud/stackit-cli/internal/pkg/print"
1717
"github.com/stackitcloud/stackit-cli/internal/pkg/utils"
@@ -87,6 +87,7 @@ func fixtureRequest(mods ...func(request *logs.ApiCreateLogsInstanceRequest)) lo
8787
func TestParseInput(t *testing.T) {
8888
tests := []struct {
8989
description string
90+
argValues []string
9091
flagValues map[string]string
9192
isValid bool
9293
expectedModel *inputModel
@@ -153,48 +154,7 @@ func TestParseInput(t *testing.T) {
153154

154155
for _, tt := range tests {
155156
t.Run(tt.description, func(t *testing.T) {
156-
cmd := &cobra.Command{}
157-
err := globalflags.Configure(cmd.Flags())
158-
if err != nil {
159-
t.Fatalf("configure global flags: %v", err)
160-
}
161-
162-
configureFlags(cmd)
163-
164-
for flag, value := range tt.flagValues {
165-
err := cmd.Flags().Set(flag, value)
166-
if err != nil {
167-
if !tt.isValid {
168-
return
169-
}
170-
t.Fatalf("setting flag --%s=%s: %v", flag, value, err)
171-
}
172-
}
173-
174-
err = cmd.ValidateRequiredFlags()
175-
if err != nil {
176-
if !tt.isValid {
177-
return
178-
}
179-
t.Fatalf("error validating flags: %v", err)
180-
}
181-
182-
p := print.NewPrinter()
183-
model, err := parseInput(p, cmd)
184-
if err != nil {
185-
if !tt.isValid {
186-
return
187-
}
188-
t.Fatalf("error parsing flags: %v", err)
189-
}
190-
191-
if !tt.isValid {
192-
t.Fatalf("did not fail on invalid input")
193-
}
194-
diff := cmp.Diff(tt.expectedModel, model)
195-
if diff != "" {
196-
t.Fatalf("Data does not match: %s", diff)
197-
}
157+
testutils.TestParseInput(t, NewCmd, parseInput, tt.expectedModel, tt.argValues, tt.flagValues, tt.isValid)
198158
})
199159
}
200160
}

internal/cmd/beta/logs/instance/delete/delete_test.go

Lines changed: 2 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@ import (
44
"context"
55
"testing"
66

7-
"github.com/stackitcloud/stackit-cli/internal/pkg/types"
8-
97
"github.com/google/go-cmp/cmp"
108
"github.com/google/go-cmp/cmp/cmpopts"
119
"github.com/google/uuid"
1210
"github.com/stackitcloud/stackit-cli/internal/pkg/globalflags"
13-
"github.com/stackitcloud/stackit-cli/internal/pkg/print"
11+
"github.com/stackitcloud/stackit-cli/internal/pkg/testutils"
1412
"github.com/stackitcloud/stackit-sdk-go/services/logs"
1513
)
1614

@@ -142,54 +140,7 @@ func TestParseInput(t *testing.T) {
142140

143141
for _, tt := range tests {
144142
t.Run(tt.description, func(t *testing.T) {
145-
p := print.NewPrinter()
146-
cmd := NewCmd(&types.CmdParams{Printer: p})
147-
err := globalflags.Configure(cmd.Flags())
148-
if err != nil {
149-
t.Fatalf("configure global flags: %v", err)
150-
}
151-
152-
err = cmd.ValidateArgs(tt.argValues)
153-
if err != nil {
154-
if !tt.isValid {
155-
return
156-
}
157-
t.Fatalf("error validating args: %v", err)
158-
}
159-
160-
for flag, value := range tt.flagValues {
161-
err := cmd.Flags().Set(flag, value)
162-
if err != nil {
163-
if !tt.isValid {
164-
return
165-
}
166-
t.Fatalf("setting flag --%s=%s: %v", flag, value, err)
167-
}
168-
}
169-
170-
err = cmd.ValidateRequiredFlags()
171-
if err != nil {
172-
if !tt.isValid {
173-
return
174-
}
175-
t.Fatalf("error validating flags: %v", err)
176-
}
177-
178-
model, err := parseInput(p, cmd, tt.argValues)
179-
if err != nil {
180-
if !tt.isValid {
181-
return
182-
}
183-
t.Fatalf("error parsing flags: %v", err)
184-
}
185-
186-
if !tt.isValid {
187-
t.Fatalf("did not fail on invalid input")
188-
}
189-
diff := cmp.Diff(tt.expectedModel, model)
190-
if diff != "" {
191-
t.Fatalf("Data does not match: %s", diff)
192-
}
143+
testutils.TestParseInput(t, NewCmd, parseInput, tt.expectedModel, tt.argValues, tt.flagValues, tt.isValid)
193144
})
194145
}
195146
}

internal/cmd/beta/logs/instance/list/list.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *logs.APICli
120120

121121
return request
122122
}
123+
123124
func outputResult(p *print.Printer, outputFormat, projectLabel string, instances []logs.LogsInstance) error {
124125
return p.OutputResult(outputFormat, instances, func() error {
125126
if len(instances) == 0 {

internal/cmd/beta/logs/instance/update/update_test.go

Lines changed: 2 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"testing"
66

7+
"github.com/stackitcloud/stackit-cli/internal/pkg/testutils"
78
"github.com/stackitcloud/stackit-cli/internal/pkg/types"
89
"github.com/stackitcloud/stackit-sdk-go/services/logs"
910

@@ -202,54 +203,7 @@ func TestParseInput(t *testing.T) {
202203

203204
for _, tt := range tests {
204205
t.Run(tt.description, func(t *testing.T) {
205-
p := print.NewPrinter()
206-
cmd := NewCmd(&types.CmdParams{Printer: p})
207-
err := globalflags.Configure(cmd.Flags())
208-
if err != nil {
209-
t.Fatalf("configure global flags: %v", err)
210-
}
211-
212-
for flag, value := range tt.flagValues {
213-
err := cmd.Flags().Set(flag, value)
214-
if err != nil {
215-
if !tt.isValid {
216-
return
217-
}
218-
t.Fatalf("setting flag --%s=%s: %v", flag, value, err)
219-
}
220-
}
221-
222-
err = cmd.ValidateArgs(tt.argValues)
223-
if err != nil {
224-
if !tt.isValid {
225-
return
226-
}
227-
t.Fatalf("error validating args: %v", err)
228-
}
229-
230-
err = cmd.ValidateRequiredFlags()
231-
if err != nil {
232-
if !tt.isValid {
233-
return
234-
}
235-
t.Fatalf("error validating flags: %v", err)
236-
}
237-
238-
model, err := parseInput(p, cmd, tt.argValues)
239-
if err != nil {
240-
if !tt.isValid {
241-
return
242-
}
243-
t.Fatalf("error parsing input: %v", err)
244-
}
245-
246-
if !tt.isValid {
247-
t.Fatalf("did not fail on invalid input")
248-
}
249-
diff := cmp.Diff(model, tt.expectedModel)
250-
if diff != "" {
251-
t.Fatalf("Data does not match: %s", diff)
252-
}
206+
testutils.TestParseInput(t, NewCmd, parseInput, tt.expectedModel, tt.argValues, tt.flagValues, tt.isValid)
253207
})
254208
}
255209
}

0 commit comments

Comments
 (0)