@@ -70,14 +70,14 @@ describe('getFormFieldValue', () => {
70
70
it ( 'gets the value by fieldName' , ( ) => {
71
71
const field = getPydanticFormFieldDummy ( { id : 'name' } ) ;
72
72
const fieldName = 'name' ;
73
- const value = getFormFieldValue ( fieldName , formValues , field ) ;
73
+ const value = getFormFieldValue ( formValues , field , fieldName ) ;
74
74
expect ( value ) . toBe ( 'John Doe' ) ;
75
75
} ) ;
76
76
77
77
it ( 'returns undefined for unknown fields' , ( ) => {
78
78
const field = getPydanticFormFieldDummy ( { id : 'name' } ) ;
79
79
const fieldName = 'UNKNOWN_FIELD' ;
80
- const value = getFormFieldValue ( fieldName , formValues , field ) ;
80
+ const value = getFormFieldValue ( formValues , field , fieldName ) ;
81
81
expect ( value ) . toBe ( undefined ) ;
82
82
} ) ;
83
83
@@ -104,14 +104,14 @@ describe('getFormFieldValue', () => {
104
104
const field = getPydanticFormFieldDummy ( {
105
105
id : 'company.contactPersons.0.name' ,
106
106
} ) ;
107
- const value = getFormFieldValue ( 'age' , complexValues , field ) ;
107
+ const value = getFormFieldValue ( complexValues , field , 'age' ) ;
108
108
expect ( value ) . toEqual ( 25 ) ;
109
109
110
110
const field2 = getPydanticFormFieldDummy ( {
111
111
id : 'company.contactPersons.1.name' ,
112
112
} ) ;
113
113
114
- const value2 = getFormFieldValue ( 'licenses' , complexValues , field2 ) ;
114
+ const value2 = getFormFieldValue ( complexValues , field2 , 'licenses' ) ;
115
115
expect ( value2 ) . toEqual ( [ 'C' ] ) ;
116
116
} ) ;
117
117
@@ -129,40 +129,86 @@ describe('getFormFieldValue', () => {
129
129
id : 'company.contactIds.0' ,
130
130
} ) ;
131
131
const valueFromFirstListElement = getFormFieldValue (
132
- 'age' ,
133
132
complexValues ,
134
133
firstListElementField ,
134
+ 'age' ,
135
135
) ;
136
136
expect ( valueFromFirstListElement ) . toEqual ( 30 ) ;
137
137
138
138
const secondListElementField = getPydanticFormFieldDummy ( {
139
139
id : 'company.contactIds.1' ,
140
140
} ) ;
141
141
const valueFromSecondListElement = getFormFieldValue (
142
- 'age' ,
143
142
complexValues ,
144
143
secondListElementField ,
144
+ 'age' ,
145
145
) ;
146
146
expect ( valueFromSecondListElement ) . toEqual ( 30 ) ;
147
147
148
148
const nameElementField = getPydanticFormFieldDummy ( {
149
149
id : 'company.name' ,
150
150
} ) ;
151
151
const valueFromNameElement = getFormFieldValue (
152
- 'age' ,
153
152
complexValues ,
154
153
nameElementField ,
154
+ 'age' ,
155
155
) ;
156
156
expect ( valueFromNameElement ) . toEqual ( 30 ) ;
157
157
158
158
const contactIdsElementField = getPydanticFormFieldDummy ( {
159
159
id : 'company.contactIds' ,
160
160
} ) ;
161
161
const ownValue = getFormFieldValue (
162
- 'contactIds' ,
163
162
complexValues ,
164
163
contactIdsElementField ,
164
+ 'contactIds' ,
165
165
) ;
166
166
expect ( ownValue ) . toEqual ( [ '123' , '456' ] ) ;
167
167
} ) ;
168
+
169
+ it ( 'gets its own value based on the pydanticform definition if no fieldName is provided' , ( ) => {
170
+ const complexValues = {
171
+ company : {
172
+ name : 'John Deer' ,
173
+ age : 30 ,
174
+ contactIds : [ '123' , '456' ] ,
175
+ } ,
176
+ age : 666 ,
177
+ } ;
178
+
179
+ const companyField = getPydanticFormFieldDummy ( {
180
+ id : 'company' ,
181
+ } ) ;
182
+ const valueFromCompanyElement = getFormFieldValue (
183
+ complexValues ,
184
+ companyField ,
185
+ ) ;
186
+ expect ( valueFromCompanyElement ) . toEqual ( {
187
+ name : 'John Deer' ,
188
+ age : 30 ,
189
+ contactIds : [ '123' , '456' ] ,
190
+ } ) ;
191
+
192
+ const secondListElementField = getPydanticFormFieldDummy ( {
193
+ id : 'company.contactIds.1' ,
194
+ } ) ;
195
+
196
+ const valueFromSecondListElement = getFormFieldValue (
197
+ complexValues ,
198
+ secondListElementField ,
199
+ ) ;
200
+
201
+ expect ( valueFromSecondListElement ) . toEqual ( [ '123' , '456' ] ) ;
202
+
203
+ const firstListElementField = getPydanticFormFieldDummy ( {
204
+ id : 'company.contactIds.0' ,
205
+ } ) ;
206
+
207
+ const valueFromListElement = getFormFieldValue (
208
+ complexValues ,
209
+ firstListElementField ,
210
+ ) ;
211
+
212
+ expect ( valueFromListElement ) . toEqual ( [ '123' , '456' ] ) ;
213
+ } ) ;
168
214
} ) ;
0 commit comments