@@ -70,14 +70,14 @@ describe('getFormFieldValue', () => {
7070 it ( 'gets the value by fieldName' , ( ) => {
7171 const field = getPydanticFormFieldDummy ( { id : 'name' } ) ;
7272 const fieldName = 'name' ;
73- const value = getFormFieldValue ( fieldName , formValues , field ) ;
73+ const value = getFormFieldValue ( formValues , field , fieldName ) ;
7474 expect ( value ) . toBe ( 'John Doe' ) ;
7575 } ) ;
7676
7777 it ( 'returns undefined for unknown fields' , ( ) => {
7878 const field = getPydanticFormFieldDummy ( { id : 'name' } ) ;
7979 const fieldName = 'UNKNOWN_FIELD' ;
80- const value = getFormFieldValue ( fieldName , formValues , field ) ;
80+ const value = getFormFieldValue ( formValues , field , fieldName ) ;
8181 expect ( value ) . toBe ( undefined ) ;
8282 } ) ;
8383
@@ -104,14 +104,14 @@ describe('getFormFieldValue', () => {
104104 const field = getPydanticFormFieldDummy ( {
105105 id : 'company.contactPersons.0.name' ,
106106 } ) ;
107- const value = getFormFieldValue ( 'age' , complexValues , field ) ;
107+ const value = getFormFieldValue ( complexValues , field , 'age' ) ;
108108 expect ( value ) . toEqual ( 25 ) ;
109109
110110 const field2 = getPydanticFormFieldDummy ( {
111111 id : 'company.contactPersons.1.name' ,
112112 } ) ;
113113
114- const value2 = getFormFieldValue ( 'licenses' , complexValues , field2 ) ;
114+ const value2 = getFormFieldValue ( complexValues , field2 , 'licenses' ) ;
115115 expect ( value2 ) . toEqual ( [ 'C' ] ) ;
116116 } ) ;
117117
@@ -129,40 +129,86 @@ describe('getFormFieldValue', () => {
129129 id : 'company.contactIds.0' ,
130130 } ) ;
131131 const valueFromFirstListElement = getFormFieldValue (
132- 'age' ,
133132 complexValues ,
134133 firstListElementField ,
134+ 'age' ,
135135 ) ;
136136 expect ( valueFromFirstListElement ) . toEqual ( 30 ) ;
137137
138138 const secondListElementField = getPydanticFormFieldDummy ( {
139139 id : 'company.contactIds.1' ,
140140 } ) ;
141141 const valueFromSecondListElement = getFormFieldValue (
142- 'age' ,
143142 complexValues ,
144143 secondListElementField ,
144+ 'age' ,
145145 ) ;
146146 expect ( valueFromSecondListElement ) . toEqual ( 30 ) ;
147147
148148 const nameElementField = getPydanticFormFieldDummy ( {
149149 id : 'company.name' ,
150150 } ) ;
151151 const valueFromNameElement = getFormFieldValue (
152- 'age' ,
153152 complexValues ,
154153 nameElementField ,
154+ 'age' ,
155155 ) ;
156156 expect ( valueFromNameElement ) . toEqual ( 30 ) ;
157157
158158 const contactIdsElementField = getPydanticFormFieldDummy ( {
159159 id : 'company.contactIds' ,
160160 } ) ;
161161 const ownValue = getFormFieldValue (
162- 'contactIds' ,
163162 complexValues ,
164163 contactIdsElementField ,
164+ 'contactIds' ,
165165 ) ;
166166 expect ( ownValue ) . toEqual ( [ '123' , '456' ] ) ;
167167 } ) ;
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+ } ) ;
168214} ) ;
0 commit comments