added NaN checks
This commit is contained in:
parent
ae86525c13
commit
be908ad4bf
|
@ -3,6 +3,7 @@ package core
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math"
|
||||||
|
|
||||||
validation "github.com/go-ozzo/ozzo-validation/v4"
|
validation "github.com/go-ozzo/ozzo-validation/v4"
|
||||||
"github.com/pocketbase/pocketbase/core/validators"
|
"github.com/pocketbase/pocketbase/core/validators"
|
||||||
|
@ -118,6 +119,10 @@ func (f *NumberField) ValidateValue(ctx context.Context, app App, record *Record
|
||||||
return validators.ErrUnsupportedValueType
|
return validators.ErrUnsupportedValueType
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if math.IsInf(val, 0) || math.IsNaN(val) {
|
||||||
|
return validation.NewError("validation_not_a_number", "The submitted number is not properly formatted")
|
||||||
|
}
|
||||||
|
|
||||||
if val == 0 {
|
if val == 0 {
|
||||||
if f.Required {
|
if f.Required {
|
||||||
if err := validation.Required.Validate(val); err != nil {
|
if err := validation.Required.Validate(val); err != nil {
|
||||||
|
|
|
@ -177,6 +177,26 @@ func TestNumberFieldValidateValue(t *testing.T) {
|
||||||
},
|
},
|
||||||
false,
|
false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"infinitiy",
|
||||||
|
&core.NumberField{Name: "test"},
|
||||||
|
func() *core.Record {
|
||||||
|
record := core.NewRecord(collection)
|
||||||
|
record.Set("test", "Inf")
|
||||||
|
return record
|
||||||
|
},
|
||||||
|
true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NaN",
|
||||||
|
&core.NumberField{Name: "test"},
|
||||||
|
func() *core.Record {
|
||||||
|
record := core.NewRecord(collection)
|
||||||
|
record.Set("test", "NaN")
|
||||||
|
return record
|
||||||
|
},
|
||||||
|
true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, s := range scenarios {
|
for _, s := range scenarios {
|
||||||
|
|
Loading…
Reference in New Issue