mirror of https://github.com/knative/pkg.git
ErrInvalidValue support for interface{} (#372)
This commit is contained in:
parent
e0fcca3e1d
commit
f55c11c3ce
|
@ -300,17 +300,17 @@ func ErrDisallowedFields(fieldPaths ...string) *FieldError {
|
|||
}
|
||||
}
|
||||
|
||||
// ErrInvalidArrayValue consturcts a FieldError for a repetetive `field`
|
||||
// ErrInvalidArrayValue constructs a FieldError for a repetetive `field`
|
||||
// at `index` that has received an invalid string value.
|
||||
func ErrInvalidArrayValue(value, field string, index int) *FieldError {
|
||||
func ErrInvalidArrayValue(value interface{}, field string, index int) *FieldError {
|
||||
return ErrInvalidValue(value, CurrentField).ViaFieldIndex(field, index)
|
||||
}
|
||||
|
||||
// ErrInvalidValue constructs a FieldError for a field that has received an
|
||||
// invalid string value.
|
||||
func ErrInvalidValue(value, fieldPath string) *FieldError {
|
||||
func ErrInvalidValue(value interface{}, fieldPath string) *FieldError {
|
||||
return &FieldError{
|
||||
Message: fmt.Sprintf("invalid value %q", value),
|
||||
Message: fmt.Sprintf("invalid value: %v", value),
|
||||
Paths: []string{fieldPath},
|
||||
}
|
||||
}
|
||||
|
@ -335,9 +335,9 @@ func ErrMultipleOneOf(fieldPaths ...string) *FieldError {
|
|||
|
||||
// ErrInvalidKeyName is a variadic helper method for constructing a FieldError
|
||||
// that specifies a key name that is invalid.
|
||||
func ErrInvalidKeyName(value, fieldPath string, details ...string) *FieldError {
|
||||
func ErrInvalidKeyName(key, fieldPath string, details ...string) *FieldError {
|
||||
return &FieldError{
|
||||
Message: fmt.Sprintf("invalid key name %q", value),
|
||||
Message: fmt.Sprintf("invalid key name %q", key),
|
||||
Paths: []string{fieldPath},
|
||||
Details: strings.Join(details, ", "),
|
||||
}
|
||||
|
|
|
@ -106,7 +106,17 @@ Body.`,
|
|||
name: "invalid value propagation",
|
||||
err: ErrInvalidValue("foo", "bar"),
|
||||
prefixes: [][]string{{"baz"}},
|
||||
want: `invalid value "foo": baz.bar`,
|
||||
want: `invalid value: foo: baz.bar`,
|
||||
}, {
|
||||
name: "invalid value propagation (int)",
|
||||
err: ErrInvalidValue(5, "bar"),
|
||||
prefixes: [][]string{{"baz"}},
|
||||
want: `invalid value: 5: baz.bar`,
|
||||
}, {
|
||||
name: "invalid value propagation (duration)",
|
||||
err: ErrInvalidValue(5*time.Second, "bar"),
|
||||
prefixes: [][]string{{"baz"}},
|
||||
want: `invalid value: 5s: baz.bar`,
|
||||
}, {
|
||||
name: "missing mutually exclusive fields",
|
||||
err: ErrMissingOneOf("foo", "bar"),
|
||||
|
@ -407,7 +417,13 @@ can not use @, do not try`,
|
|||
err: func() *FieldError {
|
||||
return ErrInvalidArrayValue("kapot", "indexed", 5)
|
||||
}(),
|
||||
want: `invalid value "kapot": indexed[5]`,
|
||||
want: `invalid value: kapot: indexed[5]`,
|
||||
}, {
|
||||
name: "leaf field error with index (int)",
|
||||
err: func() *FieldError {
|
||||
return ErrInvalidArrayValue(42, "indexed", 5)
|
||||
}(),
|
||||
want: `invalid value: 42: indexed[5]`,
|
||||
}, {
|
||||
name: "nil propagation",
|
||||
err: nil,
|
||||
|
|
Loading…
Reference in New Issue