@@ -88,7 +88,8 @@ test(`renders as expected without bounds`, () => {
88
88
null ,
89
89
null ,
90
90
null ,
91
- `left`
91
+ `left` ,
92
+ null
92
93
) ;
93
94
94
95
const rendered = unwrapRenderedFunctionComponent (
@@ -300,7 +301,8 @@ test(`renders as expected with an inclusive lower bound`, () => {
300
301
- 4096.12 ,
301
302
null ,
302
303
null ,
303
- `left`
304
+ `left` ,
305
+ null
304
306
) ;
305
307
306
308
const rendered = unwrapRenderedFunctionComponent (
@@ -514,7 +516,8 @@ test(`renders as expected with an exclusive lower bound`, () => {
514
516
null ,
515
517
null ,
516
518
null ,
517
- `left`
519
+ `left` ,
520
+ null
518
521
) ;
519
522
520
523
const rendered = unwrapRenderedFunctionComponent (
@@ -728,7 +731,8 @@ test(`renders as expected with an inclusive upper bound`, () => {
728
731
null ,
729
732
null ,
730
733
4096.12 ,
731
- `left`
734
+ `left` ,
735
+ null
732
736
) ;
733
737
734
738
const rendered = unwrapRenderedFunctionComponent (
@@ -942,7 +946,8 @@ test(`renders as expected with an exclusive upper bound`, () => {
942
946
null ,
943
947
4096.12 ,
944
948
null ,
945
- `left`
949
+ `left` ,
950
+ null
946
951
) ;
947
952
948
953
const rendered = unwrapRenderedFunctionComponent (
@@ -1073,3 +1078,222 @@ test(`renders as expected with an exclusive upper bound`, () => {
1073
1078
1074
1079
expect ( onChange ) . not . toHaveBeenCalled ( ) ;
1075
1080
} ) ;
1081
+
1082
+ test ( `renders as expected without bounds` , ( ) => {
1083
+ const controlStyle : ControlStyle = {
1084
+ fontFamily : `Example Font Family` ,
1085
+ fontSize : 37 ,
1086
+ paddingVertical : 12 ,
1087
+ paddingHorizontal : 29 ,
1088
+ blurredValid : {
1089
+ textColor : `#FFEE00` ,
1090
+ placeholderColor : `#E7AA32` ,
1091
+ backgroundColor : `#32AE12` ,
1092
+ radius : 5 ,
1093
+ border : {
1094
+ width : 4 ,
1095
+ color : `#FF00FF` ,
1096
+ } ,
1097
+ iconColor : `#43AE21` ,
1098
+ } ,
1099
+ blurredInvalid : {
1100
+ textColor : `#99FE88` ,
1101
+ placeholderColor : `#CACA3A` ,
1102
+ backgroundColor : `#259284` ,
1103
+ radius : 10 ,
1104
+ border : {
1105
+ width : 6 ,
1106
+ color : `#9A9A8E` ,
1107
+ } ,
1108
+ iconColor : `#985E00` ,
1109
+ } ,
1110
+ focusedValid : {
1111
+ textColor : `#55EA13` ,
1112
+ placeholderColor : `#273346` ,
1113
+ backgroundColor : `#CABA99` ,
1114
+ radius : 3 ,
1115
+ border : {
1116
+ width : 5 ,
1117
+ color : `#646464` ,
1118
+ } ,
1119
+ iconColor : `#789521` ,
1120
+ } ,
1121
+ focusedInvalid : {
1122
+ textColor : `#ABAADE` ,
1123
+ placeholderColor : `#47ADAD` ,
1124
+ backgroundColor : `#32AA88` ,
1125
+ radius : 47 ,
1126
+ border : {
1127
+ width : 12 ,
1128
+ color : `#98ADAA` ,
1129
+ } ,
1130
+ iconColor : `#449438` ,
1131
+ } ,
1132
+ disabledValid : {
1133
+ textColor : `#AE2195` ,
1134
+ placeholderColor : `#FFAAEE` ,
1135
+ backgroundColor : `#772728` ,
1136
+ radius : 100 ,
1137
+ border : {
1138
+ width : 14 ,
1139
+ color : `#5E5E5E` ,
1140
+ } ,
1141
+ iconColor : `#ADAADA` ,
1142
+ } ,
1143
+ disabledInvalid : {
1144
+ textColor : `#340297` ,
1145
+ placeholderColor : `#233832` ,
1146
+ backgroundColor : `#938837` ,
1147
+ radius : 2 ,
1148
+ border : {
1149
+ width : 19 ,
1150
+ color : `#573829` ,
1151
+ } ,
1152
+ iconColor : `#709709` ,
1153
+ } ,
1154
+ } ;
1155
+ const onChange = jest . fn ( ) ;
1156
+ const Component = createNullableFloatInputComponent (
1157
+ controlStyle ,
1158
+ < Text > Example Left Icon</ Text > ,
1159
+ < Text > Example Right Icon</ Text > ,
1160
+ null ,
1161
+ null ,
1162
+ null ,
1163
+ null ,
1164
+ `left` ,
1165
+ 2
1166
+ ) ;
1167
+
1168
+ const rendered = unwrapRenderedFunctionComponent (
1169
+ < Component
1170
+ value = { 124 }
1171
+ onChange = { onChange }
1172
+ disabled
1173
+ placeholder = "Example Placeholder"
1174
+ />
1175
+ ) ;
1176
+
1177
+ expect ( rendered . type ) . toBeAFunctionWithTheStaticProperties ( {
1178
+ inputComponent : {
1179
+ stringify : expect . any ( Function ) ,
1180
+ tryParse : expect . any ( Function ) ,
1181
+ controlStyle,
1182
+ multiLine : false ,
1183
+ autoComplete : `off` ,
1184
+ keyboardType : `numeric` ,
1185
+ autoFocus : false ,
1186
+ keepFocusOnSubmit : false ,
1187
+ alignment : `left` ,
1188
+ } ,
1189
+ } ) ;
1190
+
1191
+ expect ( rendered . props ) . toEqual ( {
1192
+ leftIcon : < Text > Example Left Icon</ Text > ,
1193
+ rightIcon : < Text > Example Right Icon</ Text > ,
1194
+ value : 124 ,
1195
+ onChange,
1196
+ disabled : true ,
1197
+ placeholder : `Example Placeholder` ,
1198
+ context : null ,
1199
+ secureTextEntry : false ,
1200
+ onSubmit : expect . any ( Function ) ,
1201
+ } ) ;
1202
+
1203
+ expect ( rendered . type . inputComponent . stringify ( null ) ) . toEqual ( `` ) ;
1204
+ expect ( rendered . type . inputComponent . stringify ( 0.1234 ) ) . toEqual ( `0.12` ) ;
1205
+ expect ( rendered . type . inputComponent . stringify ( 12.34 ) ) . toEqual ( `12.34` ) ;
1206
+ expect ( rendered . type . inputComponent . stringify ( 1234 ) ) . toEqual ( `1234.00` ) ;
1207
+ expect ( rendered . type . inputComponent . stringify ( - 0.1234 ) ) . toEqual ( `-0.12` ) ;
1208
+ expect ( rendered . type . inputComponent . stringify ( - 12.34 ) ) . toEqual ( `-12.34` ) ;
1209
+ expect ( rendered . type . inputComponent . stringify ( - 1234 ) ) . toEqual ( `-1234.00` ) ;
1210
+
1211
+ expect ( rendered . type . inputComponent . tryParse ( `` ) ) . toBeNull ( ) ;
1212
+ expect ( rendered . type . inputComponent . tryParse ( ` \n \r \t ` ) ) . toBeNull ( ) ;
1213
+ expect ( rendered . type . inputComponent . tryParse ( `1e1` ) ) . toBeUndefined ( ) ;
1214
+ expect ( rendered . type . inputComponent . tryParse ( `-1e1` ) ) . toBeUndefined ( ) ;
1215
+ expect ( rendered . type . inputComponent . tryParse ( `NaN` ) ) . toBeUndefined ( ) ;
1216
+ expect ( rendered . type . inputComponent . tryParse ( `-NaN` ) ) . toBeUndefined ( ) ;
1217
+ expect ( rendered . type . inputComponent . tryParse ( `Infinity` ) ) . toBeUndefined ( ) ;
1218
+ expect ( rendered . type . inputComponent . tryParse ( `-Infinity` ) ) . toBeUndefined ( ) ;
1219
+ expect ( rendered . type . inputComponent . tryParse ( `.1` ) ) . toEqual ( 0.1 ) ;
1220
+ expect ( rendered . type . inputComponent . tryParse ( `+.1` ) ) . toEqual ( 0.1 ) ;
1221
+ expect ( rendered . type . inputComponent . tryParse ( `-.1` ) ) . toEqual ( - 0.1 ) ;
1222
+ expect ( rendered . type . inputComponent . tryParse ( `.12` ) ) . toEqual ( 0.12 ) ;
1223
+ expect ( rendered . type . inputComponent . tryParse ( `+.12` ) ) . toEqual ( 0.12 ) ;
1224
+ expect ( rendered . type . inputComponent . tryParse ( `-.12` ) ) . toEqual ( - 0.12 ) ;
1225
+ expect ( rendered . type . inputComponent . tryParse ( `.123` ) ) . toBeUndefined ( ) ;
1226
+ expect ( rendered . type . inputComponent . tryParse ( `+.123` ) ) . toBeUndefined ( ) ;
1227
+ expect ( rendered . type . inputComponent . tryParse ( `-.123` ) ) . toBeUndefined ( ) ;
1228
+ expect ( rendered . type . inputComponent . tryParse ( `12.3` ) ) . toEqual ( 12.3 ) ;
1229
+ expect ( rendered . type . inputComponent . tryParse ( `+12.3` ) ) . toEqual ( 12.3 ) ;
1230
+ expect ( rendered . type . inputComponent . tryParse ( `-12.3` ) ) . toEqual ( - 12.3 ) ;
1231
+ expect ( rendered . type . inputComponent . tryParse ( `12.34` ) ) . toEqual ( 12.34 ) ;
1232
+ expect ( rendered . type . inputComponent . tryParse ( `+12.34` ) ) . toEqual ( 12.34 ) ;
1233
+ expect ( rendered . type . inputComponent . tryParse ( `-12.34` ) ) . toEqual ( - 12.34 ) ;
1234
+ expect ( rendered . type . inputComponent . tryParse ( `12.345` ) ) . toBeUndefined ( ) ;
1235
+ expect ( rendered . type . inputComponent . tryParse ( `+12.345` ) ) . toBeUndefined ( ) ;
1236
+ expect ( rendered . type . inputComponent . tryParse ( `-12.345` ) ) . toBeUndefined ( ) ;
1237
+ expect ( rendered . type . inputComponent . tryParse ( `1234` ) ) . toEqual ( 1234 ) ;
1238
+ expect ( rendered . type . inputComponent . tryParse ( `+1234` ) ) . toEqual ( 1234 ) ;
1239
+ expect ( rendered . type . inputComponent . tryParse ( `-1234` ) ) . toEqual ( - 1234 ) ;
1240
+ expect ( rendered . type . inputComponent . tryParse ( `1234.` ) ) . toEqual ( 1234 ) ;
1241
+ expect ( rendered . type . inputComponent . tryParse ( `+1234.` ) ) . toEqual ( 1234 ) ;
1242
+ expect ( rendered . type . inputComponent . tryParse ( `-1234.` ) ) . toEqual ( - 1234 ) ;
1243
+ expect (
1244
+ rendered . type . inputComponent . tryParse ( ` \n \r \t .12 \t \n \r ` )
1245
+ ) . toEqual ( 0.12 ) ;
1246
+ expect (
1247
+ rendered . type . inputComponent . tryParse ( ` \n \r \t +.12 \t \n \r ` )
1248
+ ) . toEqual ( 0.12 ) ;
1249
+ expect (
1250
+ rendered . type . inputComponent . tryParse ( ` \n \r \t -.12 \t \n \r ` )
1251
+ ) . toEqual ( - 0.12 ) ;
1252
+ expect (
1253
+ rendered . type . inputComponent . tryParse (
1254
+ ` \n \r \t 12.34 \t \n \r `
1255
+ )
1256
+ ) . toEqual ( 12.34 ) ;
1257
+ expect (
1258
+ rendered . type . inputComponent . tryParse (
1259
+ ` \n \r \t +12.34 \t \n \r `
1260
+ )
1261
+ ) . toEqual ( 12.34 ) ;
1262
+ expect (
1263
+ rendered . type . inputComponent . tryParse (
1264
+ ` \n \r \t -12.34 \t \n \r `
1265
+ )
1266
+ ) . toEqual ( - 12.34 ) ;
1267
+ expect (
1268
+ rendered . type . inputComponent . tryParse ( ` \n \r \t 1234 \t \n \r ` )
1269
+ ) . toEqual ( 1234 ) ;
1270
+ expect (
1271
+ rendered . type . inputComponent . tryParse (
1272
+ ` \n \r \t +1234 \t \n \r `
1273
+ )
1274
+ ) . toEqual ( 1234 ) ;
1275
+ expect (
1276
+ rendered . type . inputComponent . tryParse (
1277
+ ` \n \r \t -1234 \t \n \r `
1278
+ )
1279
+ ) . toEqual ( - 1234 ) ;
1280
+ expect (
1281
+ rendered . type . inputComponent . tryParse (
1282
+ ` \n \r \t 1234. \t \n \r `
1283
+ )
1284
+ ) . toEqual ( 1234 ) ;
1285
+ expect (
1286
+ rendered . type . inputComponent . tryParse (
1287
+ ` \n \r \t +1234. \t \n \r `
1288
+ )
1289
+ ) . toEqual ( 1234 ) ;
1290
+ expect (
1291
+ rendered . type . inputComponent . tryParse (
1292
+ ` \n \r \t -1234. \t \n \r `
1293
+ )
1294
+ ) . toEqual ( - 1234 ) ;
1295
+
1296
+ rendered . props . onSubmit ( ) ;
1297
+
1298
+ expect ( onChange ) . not . toHaveBeenCalled ( ) ;
1299
+ } ) ;
0 commit comments