@@ -35,65 +35,64 @@ describe("Form store", () => {
35
35
36
36
it ( "registers a field" , ( ) => {
37
37
const fieldId = "FIELD-ID" ;
38
- const initialValue = "INITIAL-VALUE " ;
38
+ const value = "value " ;
39
39
const defaultValue = "DEFAULT-VALUE" ;
40
40
41
- formStore . RegisterField ( fieldId , initialValue , defaultValue ) ;
41
+ formStore . RegisterField ( fieldId , defaultValue , undefined , value ) ;
42
+
42
43
expect ( formStore . HasField ( fieldId ) ) . toBe ( true ) ;
43
- expect ( formStore . GetField ( fieldId ) ) . not . toBeUndefined ( ) ;
44
- expect ( formStore . GetField ( fieldId ) . Value ) . toBe ( initialValue ) ;
45
- expect ( formStore . GetField ( fieldId ) . DefaultValue ) . toBe ( defaultValue ) ;
44
+
45
+ const fieldState = formStore . GetField ( fieldId ) ;
46
+
47
+ expect ( fieldState ) . not . toBeUndefined ( ) ;
48
+ expect ( fieldState . Value ) . toBe ( value ) ;
49
+ expect ( fieldState . InitialValue ) . toBe ( value ) ;
50
+ expect ( fieldState . DefaultValue ) . toBe ( defaultValue ) ;
46
51
} ) ;
47
52
53
+ // TODO: Write test with initial value
54
+
48
55
it ( "unregisters a field" , ( ) => {
49
- const fieldId = "FIELD-ID" ;
50
- const initialValue = "INITIAL-VALUE" ;
51
- const defaultValue = "DEFAULT-VALUE" ;
56
+ const fieldId = "field-id" ;
52
57
53
- formStore . RegisterField ( fieldId , initialValue , defaultValue ) ;
58
+ formStore . RegisterField ( fieldId , "" , undefined , "value" ) ;
54
59
formStore . UnregisterField ( fieldId ) ;
60
+
55
61
expect ( formStore . GetField ( fieldId ) ) . toBeUndefined ( ) ;
56
62
expect ( formStore . HasField ( fieldId ) ) . toBe ( false ) ;
57
63
} ) ;
58
64
59
65
it ( "has a field" , ( ) => {
60
- const fieldId = "FIELD-ID" ;
61
- const initialValue = "INITIAL-VALUE" ;
62
- const defaultValue = "DEFAULT-VALUE" ;
63
-
66
+ const fieldId = "field-id" ;
64
67
expect ( formStore . HasField ( fieldId ) ) . toBe ( false ) ;
65
- formStore . RegisterField ( fieldId , initialValue , defaultValue ) ;
68
+ formStore . RegisterField ( fieldId , "" , undefined , "" ) ;
66
69
expect ( formStore . HasField ( fieldId ) ) . toBe ( true ) ;
67
70
} ) ;
68
71
69
72
it ( "get a field" , ( ) => {
70
- const fieldId = "FIELD-ID" ;
71
- const initialValue = "INITIAL-VALUE" ;
72
- const defaultValue = "DEFAULT-VALUE" ;
73
+ const fieldId = "field-id" ;
73
74
74
75
expect ( formStore . GetField ( fieldId ) ) . toBeUndefined ( ) ;
75
- formStore . RegisterField ( fieldId , initialValue , defaultValue ) ;
76
+ formStore . RegisterField ( fieldId , "" , undefined , "" ) ;
76
77
expect ( formStore . GetField ( fieldId ) ) . not . toBeUndefined ( ) ;
77
78
} ) ;
78
79
79
80
it ( "value changed" , ( ) => {
80
- const fieldId = "FIELD-ID" ;
81
- const initialValue = "INITIAL-VALUE" ;
82
- const defaultValue = "DEFAULT-VALUE" ;
81
+ const fieldId = "field-id" ;
82
+ const value = "value" ;
83
83
const nextValue = "NEXT-VALUE" ;
84
84
85
- formStore . RegisterField ( fieldId , initialValue , defaultValue ) ;
86
- expect ( formStore . GetField ( fieldId ) . Value ) . toBe ( initialValue ) ;
85
+ formStore . RegisterField ( fieldId , undefined , undefined , value ) ;
86
+ expect ( formStore . GetField ( fieldId ) . Value ) . toBe ( value ) ;
87
+
87
88
formStore . ValueChanged ( fieldId , nextValue ) ;
88
89
expect ( formStore . GetField ( fieldId ) . Value ) . toBe ( nextValue ) ;
89
90
} ) ;
90
91
91
92
it ( "validate field without error" , async ( done ) => {
92
- const fieldId = "FIELD-ID" ;
93
- const initialValue = "INITIAL-VALUE" ;
94
- const defaultValue = "DEFAULT-VALUE" ;
93
+ const fieldId = "field-id" ;
95
94
96
- formStore . RegisterField ( fieldId , initialValue , defaultValue ) ;
95
+ formStore . RegisterField ( fieldId , undefined , undefined , "value" ) ;
97
96
const validationPromise = new Promise < never > ( ( resolve , reject ) => {
98
97
setTimeout ( ( ) => {
99
98
resolve ( ) ;
@@ -118,11 +117,9 @@ describe("Form store", () => {
118
117
119
118
it ( "validate field with error" , async ( done ) => {
120
119
const fieldId = "FIELD-ID" ;
121
- const initialValue = "INITIAL-VALUE" ;
122
- const defaultValue = "DEFAULT-VALUE" ;
123
120
const formError : FormError = { Message : "Error Message" } ;
124
121
125
- formStore . RegisterField ( fieldId , initialValue , defaultValue ) ;
122
+ formStore . RegisterField ( fieldId , undefined , undefined , "value" ) ;
126
123
const validationPromise = new Promise < never > ( ( resolve , reject ) => {
127
124
setTimeout ( ( ) => {
128
125
reject ( formError ) ;
@@ -145,6 +142,7 @@ describe("Form store", () => {
145
142
146
143
try {
147
144
const error = formStore . GetField ( fieldId ) . Error ;
145
+
148
146
expect ( formStore . GetField ( fieldId ) . Validating ) . toBe ( false ) ;
149
147
expect ( error ) . not . toBeUndefined ( ) ;
150
148
expect ( error ) . not . toBeNull ( ) ;
@@ -158,11 +156,10 @@ describe("Form store", () => {
158
156
159
157
it ( "skip validation when newValue has expired" , async ( done ) => {
160
158
const fieldId = "FIELD-ID" ;
161
- const initialValue = "INITIAL-VALUE" ;
162
- const defaultValue = "DEFAULT-VALUE" ;
163
159
const formError = "field error" ;
160
+ const value = "text" ;
164
161
165
- formStore . RegisterField ( fieldId , initialValue , defaultValue ) ;
162
+ formStore . RegisterField ( fieldId , undefined , undefined , value ) ;
166
163
const validationPromise = new Promise < never > ( ( resolve , reject ) => {
167
164
setTimeout ( ( ) => {
168
165
reject ( formError ) ;
@@ -172,7 +169,7 @@ describe("Form store", () => {
172
169
formStore . Validate ( fieldId , validationPromise ) ;
173
170
174
171
// Imitate removal of last letter
175
- formStore . ValueChanged ( fieldId , initialValue . slice ( 0 , initialValue . length - 1 ) ) ;
172
+ formStore . ValueChanged ( fieldId , value . slice ( 0 , value . length - 1 ) ) ;
176
173
177
174
try {
178
175
expect ( formStore . GetField ( fieldId ) . Validating ) . toBe ( true ) ;
@@ -199,16 +196,13 @@ describe("Form store", () => {
199
196
} ) ;
200
197
201
198
it ( "registers field with props" , ( ) => {
202
- const fieldId = "FIELD-ID" ;
203
- const defaultValue = "DEFAULT-VALUE" ;
199
+ const fieldId = "field-id" ;
204
200
const fieldProps : MyFieldProps = {
205
201
name : "fieldName" ,
206
- value : "initial-value" ,
207
- defaultValue : defaultValue ,
208
202
randomKey : "random value"
209
203
} ;
210
204
211
- formStore . RegisterField ( fieldId , fieldProps . value , fieldProps . defaultValue , fieldProps ) ;
205
+ formStore . RegisterField ( fieldId , undefined , undefined , undefined , fieldProps ) ;
212
206
213
207
const fieldPropsRecord = recordify < FieldStateProps , FieldStatePropsRecord > ( fieldProps ) ;
214
208
@@ -218,29 +212,25 @@ describe("Form store", () => {
218
212
219
213
it ( "updates field props" , ( ) => {
220
214
const fieldId = "FIELD-ID" ;
221
- const defaultValue = "DEFAULT-VALUE" ;
222
215
const fieldProps : MyFieldProps = {
223
216
name : "field-name" ,
224
- value : "initialValue" ,
225
- defaultValue : defaultValue ,
226
217
randomKey : "random value"
227
218
} ;
228
219
229
- // Changed value and removed randomKey prop
220
+ // Removed randomKey prop
230
221
const fieldPropsNext : MyFieldProps = {
231
222
name : fieldProps . name ,
232
- value : "Updated value"
233
223
} ;
234
224
const fieldPropsNextRecord = recordify < FieldStateProps , FieldStatePropsRecord > ( fieldPropsNext ) ;
235
225
236
- formStore . RegisterField ( fieldId , fieldProps . value , fieldProps . defaultValue , fieldProps ) ;
226
+ formStore . RegisterField ( fieldId , undefined , undefined , undefined , fieldProps ) ;
237
227
formStore . UpdateProps ( fieldId , fieldPropsNext ) ;
238
228
239
229
// Deep-check the updated props
240
230
expect ( Immutable . is ( formStore . GetField ( fieldId ) . Props , fieldPropsNextRecord ) ) . toBe ( true ) ;
241
231
} ) ;
242
232
243
- it ( "clears all fields values" , ( ) => {
233
+ it ( "clears all fields values to default values " , ( ) => {
244
234
let fieldsIds : string [ ] = [ ] ;
245
235
for ( let i = 0 ; i < 5 ; i ++ ) {
246
236
fieldsIds . push ( `field-id-${ i } ` ) ;
@@ -249,13 +239,12 @@ describe("Form store", () => {
249
239
const defaultValue = "default value" ;
250
240
const fieldProps : MyFieldProps = {
251
241
name : "field-name" ,
252
- value : "initial value" ,
253
242
defaultValue : defaultValue ,
254
- randomKey : "random value"
243
+ value : "value"
255
244
} ;
256
245
257
246
for ( const fieldId of fieldsIds ) {
258
- formStore . RegisterField ( fieldId , fieldProps . value , fieldProps . defaultValue , fieldProps ) ;
247
+ formStore . RegisterField ( fieldId , fieldProps . defaultValue , undefined , fieldProps . value , fieldProps ) ;
259
248
}
260
249
formStore . ClearFields ( ) ;
261
250
@@ -265,36 +254,35 @@ describe("Form store", () => {
265
254
}
266
255
} ) ;
267
256
268
- it ( "clears fields values by fieldsIds" , ( ) => {
257
+ it ( "clears fields values by fieldsIds to default values " , ( ) => {
269
258
let fieldsIds : string [ ] = [ ] ;
270
259
for ( let i = 0 ; i < 5 ; i ++ ) {
271
260
fieldsIds . push ( `field-id-${ i } ` ) ;
272
261
}
273
- const clearedFieldId = fieldsIds [ 0 ] ;
262
+ const fieldToClearId = fieldsIds [ 0 ] ;
274
263
const defaultValue = "default value" ;
275
264
const fieldProps : MyFieldProps = {
276
265
name : "field-name" ,
277
- value : "initial value" ,
278
266
defaultValue : defaultValue ,
279
- randomKey : "random value"
267
+ value : "value" ,
280
268
} ;
281
269
282
270
for ( const fieldId of fieldsIds ) {
283
- formStore . RegisterField ( fieldId , fieldProps . value , fieldProps . defaultValue , fieldProps ) ;
271
+ formStore . RegisterField ( fieldId , fieldProps . defaultValue , undefined , fieldProps . value , fieldProps ) ;
284
272
}
285
- formStore . ClearFields ( [ clearedFieldId ] ) ;
273
+ formStore . ClearFields ( [ fieldToClearId ] ) ;
286
274
287
275
for ( const fieldId of fieldsIds ) {
288
276
const fieldState = formStore . GetField ( fieldId ) ;
289
- if ( fieldId === clearedFieldId ) {
277
+ if ( fieldId === fieldToClearId ) {
290
278
expect ( fieldState . Value ) . toBe ( defaultValue ) ;
291
279
} else {
292
280
expect ( fieldState . Value ) . not . toBe ( defaultValue ) ;
293
281
}
294
282
}
295
283
} ) ;
296
284
297
- it ( "resets all fields values" , ( ) => {
285
+ it ( "resets all fields values to initial values " , ( ) => {
298
286
let fieldsIds : string [ ] = [ ] ;
299
287
for ( let i = 0 ; i < 5 ; i ++ ) {
300
288
fieldsIds . push ( `field-id-${ i } ` ) ;
@@ -303,13 +291,13 @@ describe("Form store", () => {
303
291
const nextValue = "next value" ;
304
292
const fieldProps : MyFieldProps = {
305
293
name : "field-name" ,
306
- value : initialValue ,
307
- defaultValue : "default value" ,
294
+ initialValue : initialValue ,
295
+ value : "value" ,
308
296
randomKey : "random value"
309
297
} ;
310
298
311
299
for ( const fieldId of fieldsIds ) {
312
- formStore . RegisterField ( fieldId , fieldProps . value , fieldProps . defaultValue , fieldProps ) ;
300
+ formStore . RegisterField ( fieldId , undefined , fieldProps . initialValue , fieldProps . value , fieldProps ) ;
313
301
formStore . ValueChanged ( fieldId , nextValue ) ;
314
302
}
315
303
formStore . ResetFields ( ) ;
@@ -320,31 +308,30 @@ describe("Form store", () => {
320
308
}
321
309
} ) ;
322
310
323
- it ( "resets fields values by fieldsIds" , ( ) => {
311
+ it ( "resets fields values by fieldsIds to initial values " , ( ) => {
324
312
let fieldsIds : string [ ] = [ ] ;
325
313
for ( let i = 0 ; i < 5 ; i ++ ) {
326
314
fieldsIds . push ( `field-id-${ i } ` ) ;
327
315
}
328
- const resetFieldId = fieldsIds [ 0 ] ;
329
- const initialValue = "initial value" ;
316
+ const fieldToResetId = fieldsIds [ 0 ] ;
317
+ const value = "value" ;
330
318
const nextValue = "next value" ;
331
319
const fieldProps : MyFieldProps = {
332
320
name : "field-name" ,
333
- value : initialValue ,
334
- defaultValue : "default value" ,
321
+ value : value ,
335
322
randomKey : "random value"
336
323
} ;
337
324
338
325
for ( const fieldId of fieldsIds ) {
339
- formStore . RegisterField ( fieldId , fieldProps . value , fieldProps . defaultValue , fieldProps ) ;
326
+ formStore . RegisterField ( fieldId , undefined , undefined , fieldProps . value , fieldProps ) ;
340
327
formStore . ValueChanged ( fieldId , nextValue ) ;
341
328
}
342
- formStore . ResetFields ( [ resetFieldId ] ) ;
329
+ formStore . ResetFields ( [ fieldToResetId ] ) ;
343
330
344
331
for ( const fieldId of fieldsIds ) {
345
332
const fieldState = formStore . GetField ( fieldId ) ;
346
- if ( fieldId === resetFieldId ) {
347
- expect ( fieldState . Value ) . toBe ( initialValue ) ;
333
+ if ( fieldId === fieldToResetId ) {
334
+ expect ( fieldState . Value ) . toBe ( value ) ;
348
335
} else {
349
336
expect ( fieldState . Value ) . toBe ( nextValue ) ;
350
337
}
0 commit comments