11import type { JsfObjectSchema } from '../src/types'
22import { describe , expect , it } from '@jest/globals'
33import { createHeadlessForm } from '../src'
4+ import { getField } from '../src/utils'
45
56describe ( 'Field visibility' , ( ) => {
67 describe ( 'if inside allOf' , ( ) => {
@@ -36,22 +37,22 @@ describe('Field visibility', () => {
3637
3738 it ( 'should hide the password field by default' , ( ) => {
3839 const form = createHeadlessForm ( schema , { initialValues : { name : 'asd' , password : null } } )
39- expect ( form . fields . find ( field => field . name === 'password' ) ?. isVisible ) . toBe ( false )
40+ expect ( getField ( form . fields , 'password' ) ?. isVisible ) . toBe ( false )
4041
4142 // Different name provided
4243 form . handleValidation ( {
4344 name : 'some name' ,
4445 password : null ,
4546 } )
46- expect ( form . fields . find ( field => field . name === 'password' ) ?. isVisible ) . toBe ( false )
47+ expect ( getField ( form . fields , 'password' ) ?. isVisible ) . toBe ( false )
4748 } )
4849
4950 it ( 'should show the password field if the name is admin' , ( ) => {
5051 const form = createHeadlessForm ( schema )
5152 form . handleValidation ( {
5253 name : 'admin' ,
5354 } )
54- expect ( form . fields . find ( field => field . name === 'password' ) ?. isVisible ) . toBe ( true )
55+ expect ( getField ( form . fields , 'password' ) ?. isVisible ) . toBe ( true )
5556 } )
5657 } )
5758 describe ( 'if an "else" branch is not provided' , ( ) => {
@@ -88,18 +89,18 @@ describe('Field visibility', () => {
8889 it ( 'should show the password field by default' , ( ) => {
8990 const form = createHeadlessForm ( schema )
9091 // No name provided
91- expect ( form . fields . find ( field => field . name === 'password' ) ?. isVisible ) . toBe ( true )
92+ expect ( getField ( form . fields , 'password' ) ?. isVisible ) . toBe ( true )
9293
9394 // Different name provided
9495 form . handleValidation ( {
9596 name : 'some name' ,
9697 } )
97- expect ( form . fields . find ( field => field . name === 'password' ) ?. isVisible ) . toBe ( true )
98+ expect ( getField ( form . fields , 'password' ) ?. isVisible ) . toBe ( true )
9899 } )
99100
100101 it ( 'should hide the password field if the name is "user that does not need password field visible"' , ( ) => {
101102 const form = createHeadlessForm ( schema , { initialValues : { name : userName , password : null } } )
102- expect ( form . fields . find ( field => field . name === 'password' ) ?. isVisible ) . toBe ( false )
103+ expect ( getField ( form . fields , 'password' ) ?. isVisible ) . toBe ( false )
103104 } )
104105 } )
105106 describe ( 'if no "else" or "then" branch are provided' , ( ) => {
@@ -131,21 +132,21 @@ describe('Field visibility', () => {
131132 it ( 'should show the password field by default' , ( ) => {
132133 const form = createHeadlessForm ( schema )
133134 // No name provided
134- expect ( form . fields . find ( field => field . name === 'password' ) ?. isVisible ) . toBe ( true )
135+ expect ( getField ( form . fields , 'password' ) ?. isVisible ) . toBe ( true )
135136
136137 // Different name provided
137138 form . handleValidation ( {
138139 name : 'some name' ,
139140 } )
140- expect ( form . fields . find ( field => field . name === 'password' ) ?. isVisible ) . toBe ( true )
141+ expect ( getField ( form . fields , 'password' ) ?. isVisible ) . toBe ( true )
141142 } )
142143
143144 it ( 'should show the password field if the name is "admin"' , ( ) => {
144145 const form = createHeadlessForm ( schema )
145146 form . handleValidation ( {
146147 name : userName ,
147148 } )
148- expect ( form . fields . find ( field => field . name === 'password' ) ?. isVisible ) . toBe ( true )
149+ expect ( getField ( form . fields , 'password' ) ?. isVisible ) . toBe ( true )
149150 } )
150151 } )
151152 } )
@@ -194,7 +195,7 @@ describe('Field visibility', () => {
194195 it ( 'should hide the password field by default' , ( ) => {
195196 const form = createHeadlessForm ( schema , { initialValues : { form : { name : '' , password : null } } } )
196197 // No name provided
197- expect ( form . fields . find ( field => field . name === 'form' ) ?. fields ?. find ( field => field . name === 'password' ) ?. isVisible ) . toBe ( false )
198+ expect ( getField ( form . fields , 'form' , 'password' ) ?. isVisible ) . toBe ( false )
198199
199200 // Different name provided
200201 form . handleValidation ( {
@@ -203,15 +204,15 @@ describe('Field visibility', () => {
203204 password : null ,
204205 } ,
205206 } )
206- expect ( form . fields . find ( field => field . name === 'form' ) ?. fields ?. find ( field => field . name === 'password' ) ?. isVisible ) . toBe ( false )
207+ expect ( getField ( form . fields , 'form' , 'password' ) ?. isVisible ) . toBe ( false )
207208 } )
208209
209210 it ( 'should show the password field if the name is admin' , ( ) => {
210211 const form = createHeadlessForm ( schema , { initialValues : { form : { name : 'admin' , password : null } } } )
211212 form . handleValidation ( { form : {
212213 name : 'admin' ,
213214 } } )
214- expect ( form . fields . find ( field => field . name === 'form' ) ?. fields ?. find ( field => field . name === 'password' ) ?. isVisible ) . toBe ( true )
215+ expect ( getField ( form . fields , 'form' , 'password' ) ?. isVisible ) . toBe ( true )
215216 } )
216217 } )
217218} )
0 commit comments