File tree Expand file tree Collapse file tree 2 files changed +21
-1
lines changed
packages/react-form-renderer/src Expand file tree Collapse file tree 2 files changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -92,6 +92,14 @@ describe('data types', () => {
92
92
it ( 'converts a negative integer' , ( ) => {
93
93
expect ( convertType ( dataTypes . INTEGER , '-12132' ) ) . toEqual ( - 12132 ) ;
94
94
} ) ;
95
+
96
+ it ( 'converts a floating number with nothing preceding decimal' , ( ) => {
97
+ expect ( convertType ( dataTypes . FLOAT , '123.' ) ) . toEqual ( '123.' ) ;
98
+ } ) ;
99
+
100
+ it ( 'converts a floating number' , ( ) => {
101
+ expect ( convertType ( dataTypes . FLOAT , '123.0' ) ) . toEqual ( 123.0 ) ;
102
+ } ) ;
95
103
} ) ;
96
104
} ) ;
97
105
} ) ;
Original file line number Diff line number Diff line change @@ -18,6 +18,18 @@ const castToBoolean = (value) => {
18
18
*/
19
19
const canBeConvertedToNumber = ( value ) => ! isNaN ( Number ( value ) ) && value !== '' ;
20
20
21
+ /**
22
+ * Check if the value can be converted to float
23
+ * @param {Any } value value to be checked
24
+ */
25
+ const canBeConvertedToFloat = ( value ) => {
26
+ if ( typeof value == 'string' && value . endsWith ( '.' ) ) {
27
+ return false ;
28
+ }
29
+
30
+ return canBeConvertedToNumber ( value ) ;
31
+ } ;
32
+
21
33
/**
22
34
* Changes the value type
23
35
* @param {FieldDataTypes } dataType type for value conversion
@@ -28,7 +40,7 @@ const convertType = (dataType, value) => {
28
40
case dataTypes . INTEGER :
29
41
return canBeConvertedToNumber ( value ) ? parseInt ( value ) : value ;
30
42
case dataTypes . FLOAT :
31
- return canBeConvertedToNumber ( value ) ? parseFloat ( value ) : value ;
43
+ return canBeConvertedToFloat ( value ) ? parseFloat ( value ) : value ;
32
44
case dataTypes . NUMBER :
33
45
return canBeConvertedToNumber ( value ) ? Number ( value ) : value ;
34
46
case dataTypes . BOOLEAN :
You can’t perform that action at this time.
0 commit comments