@@ -217,25 +217,61 @@ describe('Form.List', () => {
217
217
matchKey ( 1 , '2' ) ;
218
218
} ) ;
219
219
220
- it ( 'validate' , async ( ) => {
221
- const [ , getList ] = generateForm (
222
- fields => (
223
- < div >
224
- { fields . map ( field => (
225
- < Field { ...field } rules = { [ { required : true } ] } >
226
- < Input />
227
- </ Field >
228
- ) ) }
229
- </ div >
230
- ) ,
231
- {
232
- initialValues : { list : [ '' ] } ,
233
- } ,
234
- ) ;
220
+ describe ( 'validate' , ( ) => {
221
+ it ( 'basic' , async ( ) => {
222
+ const [ , getList ] = generateForm (
223
+ fields => (
224
+ < div >
225
+ { fields . map ( field => (
226
+ < Field { ...field } rules = { [ { required : true } ] } >
227
+ < Input />
228
+ </ Field >
229
+ ) ) }
230
+ </ div >
231
+ ) ,
232
+ {
233
+ initialValues : { list : [ '' ] } ,
234
+ } ,
235
+ ) ;
235
236
236
- await changeValue ( getField ( getList ( ) ) , '' ) ;
237
+ await changeValue ( getField ( getList ( ) ) , '' ) ;
237
238
238
- expect ( form . getFieldError ( [ 'list' , 0 ] ) ) . toEqual ( [ "'list.0' is required" ] ) ;
239
+ expect ( form . getFieldError ( [ 'list' , 0 ] ) ) . toEqual ( [ "'list.0' is required" ] ) ;
240
+ } ) ;
241
+
242
+ it ( 'remove should keep error' , async ( ) => {
243
+ const [ wrapper , getList ] = generateForm (
244
+ ( fields , { remove } ) => (
245
+ < div >
246
+ { fields . map ( field => (
247
+ < Field { ...field } rules = { [ { required : true } ] } >
248
+ < Input />
249
+ </ Field >
250
+ ) ) }
251
+
252
+ < button
253
+ type = "button"
254
+ onClick = { ( ) => {
255
+ remove ( 0 ) ;
256
+ } }
257
+ />
258
+ </ div >
259
+ ) ,
260
+ {
261
+ initialValues : { list : [ '' , '' ] } ,
262
+ } ,
263
+ ) ;
264
+
265
+ expect ( wrapper . find ( Input ) ) . toHaveLength ( 2 ) ;
266
+ await changeValue ( getField ( getList ( ) , 1 ) , '' ) ;
267
+ expect ( form . getFieldError ( [ 'list' , 1 ] ) ) . toEqual ( [ "'list.1' is required" ] ) ;
268
+
269
+ wrapper . find ( 'button' ) . simulate ( 'click' ) ;
270
+ wrapper . update ( ) ;
271
+
272
+ expect ( wrapper . find ( Input ) ) . toHaveLength ( 1 ) ;
273
+ expect ( form . getFieldError ( [ 'list' , 0 ] ) ) . toEqual ( [ "'list.1' is required" ] ) ;
274
+ } ) ;
239
275
} ) ;
240
276
241
277
it ( 'warning if children is not function' , ( ) => {
0 commit comments