diff --git a/libs/flags/json_flag.go b/libs/flags/json_flag.go index 8a50e6c092b..587bca298c3 100644 --- a/libs/flags/json_flag.go +++ b/libs/flags/json_flag.go @@ -2,6 +2,7 @@ package flags import ( "encoding/json" + "errors" "fmt" "os" "reflect" @@ -23,6 +24,9 @@ func (j *JsonFlag) String() string { // TODO: Command.MarkFlagFilename() func (j *JsonFlag) Set(v string) error { + if v == "" { + return errors.New("expected inline JSON or @path/to/file, got an empty string") + } // Load request from file if it starts with '@' (like curl). if v[0] != '@' { j.raw = []byte(v) diff --git a/libs/flags/json_flag_test.go b/libs/flags/json_flag_test.go index 2ebda9f8678..db9eaa78819 100644 --- a/libs/flags/json_flag_test.go +++ b/libs/flags/json_flag_test.go @@ -24,6 +24,13 @@ func TestJsonFlagEmpty(t *testing.T) { assert.Nil(t, request) } +func TestJsonFlagEmptyValue(t *testing.T) { + var body JsonFlag + + err := body.Set("") + assert.EqualError(t, err, "expected inline JSON or @path/to/file, got an empty string") +} + func TestJsonFlagInline(t *testing.T) { var body JsonFlag