Skip to content

Commit 4be0519

Browse files
change update to require both name and desc
1 parent cfb46ba commit 4be0519

2 files changed

Lines changed: 29 additions & 53 deletions

File tree

pkg/commands/apisecurity/tags/tags_test.go

Lines changed: 13 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -359,22 +359,27 @@ func TestTagsUpdate(t *testing.T) {
359359
scenarios := []testutil.CLIScenario{
360360
{
361361
Name: "validate missing --service-id flag",
362-
Args: fmt.Sprintf("--tag-id %s --name %s", tagID, updatedTagName),
362+
Args: fmt.Sprintf("--tag-id %s --name %s --description %s", tagID, updatedTagName, updatedTagDesc),
363363
WantError: "error reading service: no service ID found",
364364
},
365365
{
366366
Name: "validate missing --tag-id flag",
367-
Args: fmt.Sprintf("--service-id %s --name %s", serviceID, updatedTagName),
367+
Args: fmt.Sprintf("--service-id %s --name %s --description %s", serviceID, updatedTagName, updatedTagDesc),
368368
WantError: "error parsing arguments: required flag --tag-id not provided",
369369
},
370370
{
371-
Name: "validate missing update fields",
372-
Args: fmt.Sprintf("--service-id %s --tag-id %s", serviceID, tagID),
373-
WantError: "at least one of --name or --description must be provided",
371+
Name: "validate missing --name flag",
372+
Args: fmt.Sprintf("--service-id %s --tag-id %s --description %s", serviceID, tagID, updatedTagDesc),
373+
WantError: "error parsing arguments: required flag --name not provided",
374+
},
375+
{
376+
Name: "validate missing --description flag",
377+
Args: fmt.Sprintf("--service-id %s --tag-id %s --name %s", serviceID, tagID, updatedTagName),
378+
WantError: "error parsing arguments: required flag --description not provided",
374379
},
375380
{
376381
Name: "validate bad request",
377-
Args: fmt.Sprintf("--service-id %s --tag-id %s --name %s", serviceID, tagID, updatedTagName),
382+
Args: fmt.Sprintf("--service-id %s --tag-id %s --name %s --description %s", serviceID, tagID, updatedTagName, updatedTagDesc),
378383
Client: &http.Client{
379384
Transport: &testutil.MockRoundTripper{
380385
Response: &http.Response{
@@ -392,35 +397,7 @@ func TestTagsUpdate(t *testing.T) {
392397
WantError: "400 - Bad Request",
393398
},
394399
{
395-
Name: "validate API success (update name only)",
396-
Args: fmt.Sprintf("--service-id %s --tag-id %s --name %s", serviceID, tagID, updatedTagName),
397-
Client: &http.Client{
398-
Transport: &testutil.MockRoundTripper{
399-
Response: &http.Response{
400-
StatusCode: http.StatusOK,
401-
Status: http.StatusText(http.StatusOK),
402-
Body: io.NopCloser(bytes.NewReader(testutil.GenJSON(updatedTag))),
403-
},
404-
},
405-
},
406-
WantOutput: fstfmt.Success("Updated operation tag '%s' (id: %s)", updatedTagName, tagID),
407-
},
408-
{
409-
Name: "validate API success (update description only)",
410-
Args: fmt.Sprintf("--service-id %s --tag-id %s --description %s", serviceID, tagID, updatedTagDesc),
411-
Client: &http.Client{
412-
Transport: &testutil.MockRoundTripper{
413-
Response: &http.Response{
414-
StatusCode: http.StatusOK,
415-
Status: http.StatusText(http.StatusOK),
416-
Body: io.NopCloser(bytes.NewReader(testutil.GenJSON(updatedTag))),
417-
},
418-
},
419-
},
420-
WantOutput: fstfmt.Success("Updated operation tag '%s' (id: %s)", updatedTagName, tagID),
421-
},
422-
{
423-
Name: "validate API success (update both)",
400+
Name: "validate API success",
424401
Args: fmt.Sprintf("--service-id %s --tag-id %s --name %s --description %s", serviceID, tagID, updatedTagName, updatedTagDesc),
425402
Client: &http.Client{
426403
Transport: &testutil.MockRoundTripper{
@@ -435,7 +412,7 @@ func TestTagsUpdate(t *testing.T) {
435412
},
436413
{
437414
Name: "validate optional --json flag",
438-
Args: fmt.Sprintf("--service-id %s --tag-id %s --name %s --json", serviceID, tagID, updatedTagName),
415+
Args: fmt.Sprintf("--service-id %s --tag-id %s --name %s --description %s --json", serviceID, tagID, updatedTagName, updatedTagDesc),
439416
Client: &http.Client{
440417
Transport: &testutil.MockRoundTripper{
441418
Response: &http.Response{

pkg/commands/apisecurity/tags/update.go

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,11 @@ type UpdateCommand struct {
2020
argparser.JSONOutput
2121

2222
// Required.
23-
tagID string
24-
23+
tagID string
24+
name string
25+
description string
2526
// Optional.
2627
serviceName argparser.OptionalServiceNameID
27-
name argparser.OptionalString
28-
description argparser.OptionalString
2928
}
3029

3130
// NewUpdateCommand returns a usable command registered under the parent.
@@ -40,6 +39,8 @@ func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *UpdateComman
4039

4140
// Required.
4241
c.CmdClause.Flag("tag-id", "Tag ID").Required().StringVar(&c.tagID)
42+
c.CmdClause.Flag("name", "Updated name of the operation tag").Required().StringVar(&c.name)
43+
c.CmdClause.Flag("description", "Updated description of the operation tag").Required().StringVar(&c.description)
4344

4445
// Optional.
4546
c.RegisterFlag(argparser.StringFlagOpts{
@@ -53,8 +54,7 @@ func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *UpdateComman
5354
Description: argparser.FlagServiceNameDesc,
5455
Dst: &c.serviceName.Value,
5556
})
56-
c.CmdClause.Flag("name", "Updated name of the operation tag").Action(c.name.Set).StringVar(&c.name.Value)
57-
c.CmdClause.Flag("description", "Updated description of the operation tag").Action(c.description.Set).StringVar(&c.description.Value)
57+
5858
c.RegisterFlagBool(c.JSONFlag())
5959

6060
return &c
@@ -78,8 +78,12 @@ func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
7878
return errors.New("service-id is required")
7979
}
8080

81-
if !c.name.WasSet && !c.description.WasSet {
82-
return errors.New("at least one of --name or --description must be provided")
81+
if c.name == "" {
82+
return errors.New("--name is required")
83+
}
84+
85+
if c.description == "" {
86+
return errors.New("--description is required")
8387
}
8488

8589
fc, ok := c.Globals.APIClient.(*fastly.Client)
@@ -88,15 +92,10 @@ func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
8892
}
8993

9094
input := &operations.UpdateTagInput{
91-
ServiceID: &serviceID,
92-
TagID: &c.tagID,
93-
}
94-
95-
if c.name.WasSet {
96-
input.Name = &c.name.Value
97-
}
98-
if c.description.WasSet {
99-
input.Description = &c.description.Value
95+
Description: &c.description,
96+
Name: &c.name,
97+
ServiceID: &serviceID,
98+
TagID: &c.tagID,
10099
}
101100

102101
tag, err := operations.UpdateTag(context.TODO(), fc, input)

0 commit comments

Comments
 (0)