added NaN checks
This commit is contained in:
		
							parent
							
								
									ae86525c13
								
							
						
					
					
						commit
						be908ad4bf
					
				| 
						 | 
				
			
			@ -3,6 +3,7 @@ package core
 | 
			
		|||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"math"
 | 
			
		||||
 | 
			
		||||
	validation "github.com/go-ozzo/ozzo-validation/v4"
 | 
			
		||||
	"github.com/pocketbase/pocketbase/core/validators"
 | 
			
		||||
| 
						 | 
				
			
			@ -118,6 +119,10 @@ func (f *NumberField) ValidateValue(ctx context.Context, app App, record *Record
 | 
			
		|||
		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 f.Required {
 | 
			
		||||
			if err := validation.Required.Validate(val); err != nil {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -177,6 +177,26 @@ func TestNumberFieldValidateValue(t *testing.T) {
 | 
			
		|||
			},
 | 
			
		||||
			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 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue