From fc83477ec8ab49c7a574c125789721e9d8f6e11c Mon Sep 17 00:00:00 2001 From: Phani Teja Marupaka Date: Tue, 4 Aug 2020 00:41:52 -0700 Subject: [PATCH] Throw insufficient arguments error for create-setter --- .../internal/commands/cmdcreatesetter.go | 8 +++-- .../internal/commands/cmdcreatesetter_test.go | 30 +++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/cmd/config/internal/commands/cmdcreatesetter.go b/cmd/config/internal/commands/cmdcreatesetter.go index de23da0fb..f2db516c5 100644 --- a/cmd/config/internal/commands/cmdcreatesetter.go +++ b/cmd/config/internal/commands/cmdcreatesetter.go @@ -100,12 +100,16 @@ func (r *CreateSetterRunner) preRunE(c *cobra.Command, args []string) error { if setterVersion == "" { if len(args) == 2 && r.Set.SetPartialField.Type == "array" && c.Flag("field").Changed { setterVersion = "v2" - } else if len(args) < 2 || !c.Flag("value").Changed && len(args) < 3 { - setterVersion = "v1" } else if err := initSetterVersion(c, args); err != nil { return err } } + + if r.Set.SetPartialField.Type != "array" && !c.Flag("value").Changed && len(args) < 3 { + return errors.Errorf("setter name and value must be provided, " + + "value can either be an argument or can be passed as a flag --value") + } + if setterVersion == "v2" { var err error r.OpenAPIFile, err = ext.GetOpenAPIFile(args) diff --git a/cmd/config/internal/commands/cmdcreatesetter_test.go b/cmd/config/internal/commands/cmdcreatesetter_test.go index 4845cfd84..cb0365741 100644 --- a/cmd/config/internal/commands/cmdcreatesetter_test.go +++ b/cmd/config/internal/commands/cmdcreatesetter_test.go @@ -166,6 +166,36 @@ spec: `, }, + { + name: "add replicas not enough arguments", + args: []string{"replicas", "--description", "hello world", "--set-by", "me"}, + err: `setter name and value must be provided, value can either be an argument or can be passed as a flag --value`, + input: ` +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment +spec: + replicas: 3 + `, + inputOpenAPI: ` +apiVersion: v1alpha1 +kind: Example +`, + expectedOpenAPI: ` +apiVersion: v1alpha1 +kind: Example + `, + expectedResources: ` +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment +spec: + replicas: 3 + `, + }, + { name: "list values with schema", args: []string{"list", "--description", "hello world", "--set-by", "me", "--type", "array", "--field", "spec.list"},