@@ -986,6 +986,42 @@ describe('form api', () => {
986
986
expect ( field2Surname . state . meta . isBlurred ) . toBe ( false )
987
987
} )
988
988
989
+ it ( 'should preserve array default values when manipulating array values' , ( ) => {
990
+ const defaultValues = {
991
+ names : [ 'one' , 'two' , 'three' ] ,
992
+ }
993
+ const form = new FormApi ( {
994
+ defaultValues,
995
+ } )
996
+ form . mount ( )
997
+ form . pushFieldValue ( 'names' , 'four' )
998
+ expect ( form . options . defaultValues ?. names ) . toStrictEqual ( defaultValues . names )
999
+
1000
+ form . reset ( )
1001
+ form . insertFieldValue ( 'names' , 0 , 'other' )
1002
+ expect ( form . options . defaultValues ?. names ) . toStrictEqual ( defaultValues . names )
1003
+
1004
+ form . reset ( )
1005
+ form . replaceFieldValue ( 'names' , 1 , 'other' )
1006
+ expect ( form . options . defaultValues ?. names ) . toStrictEqual ( defaultValues . names )
1007
+
1008
+ form . reset ( )
1009
+ form . removeFieldValue ( 'names' , 1 )
1010
+ expect ( form . options . defaultValues ?. names ) . toStrictEqual ( defaultValues . names )
1011
+
1012
+ form . reset ( )
1013
+ form . swapFieldValues ( 'names' , 1 , 2 )
1014
+ expect ( form . options . defaultValues ?. names ) . toStrictEqual ( defaultValues . names )
1015
+
1016
+ form . reset ( )
1017
+ form . moveFieldValues ( 'names' , 1 , 2 )
1018
+ expect ( form . options . defaultValues ?. names ) . toStrictEqual ( defaultValues . names )
1019
+
1020
+ form . reset ( )
1021
+ form . clearFieldValues ( 'names' )
1022
+ expect ( form . options . defaultValues ?. names ) . toStrictEqual ( defaultValues . names )
1023
+ } )
1024
+
989
1025
it ( 'should handle fields inside an array' , async ( ) => {
990
1026
interface Employee {
991
1027
firstName : string
0 commit comments