11
2+ /** global: jest */
23import { validate } from '../index'
34import RULES from '../rules'
45import { setMessageHandler , setMessageHandlers , getMessage , getMessageHandler } from '../messages'
@@ -32,42 +33,7 @@ describe('Custom messages', () => {
3233
3334describe ( 'Form Validator' , ( ) => {
3435
35- const mockedRules = [ ] ;
36- const mockedMessages = { } ;
37-
38- function mockValidateField ( returnVal ) {
39- const mock = jest . fn ( ) ;
40- mock . mockReturnValue ( returnVal ) ;
41- validate . validateField = mock ;
42- return mock ;
43- }
44-
45- function mockRule ( name , returnVal ) {
46- const mock = jest . fn ( ) ;
47- mock . mockReturnValue ( returnVal ) ;
48- RULES [ name ] = mock ;
49- mockedRules . push ( name ) ;
50- return mock ;
51- }
52-
53- function mockMessage ( rule , returnVal ) {
54- const mock = jest . fn ( ) ;
55- mock . mockReturnValue ( returnVal ) ;
56- mockedMessages [ rule ] = getMessageHandler ( rule ) ;
57- setMessageHandler ( rule , mock ) ;
58- return mock ;
59- }
60-
61- function restoreMocks ( ) {
62- validate . validateForm = validateForm ;
63- validate . validateField = validateField ;
64-
65- mockedRules . forEach ( rule => RULES [ rule ] = oldRules [ rule ] ) ;
66- mockedRules . length = 0 ;
67-
68- Object . keys ( mockedMessages ) . forEach ( rule => setMessageHandler ( rule , mockedMessages [ rule ] ) ) ;
69- mockedMessages . length = 0 ;
70- }
36+
7137
7238 describe ( 'validateForm' , ( ) => {
7339 it ( 'can pass field data to validateField' , ( ) => {
@@ -144,74 +110,12 @@ describe('Form Validator', () => {
144110 } ) ;
145111
146112 it ( 'can bail on first error' , ( ) => {
147- const formData = {
148- test : {
149- value : null ,
150- validation : 'required|bail' ,
151- } ,
152- test2 : {
153- value : null ,
154- validation : 'required' ,
155- }
156- }
157-
158- const validateField = mockValidateField ( ) ;
159- validateField . mockReturnValueOnce ( {
160- errors : [ 'required' ] ,
161- } ) ;
162- validateField . mockReturnValueOnce ( {
163- errors : [ 'required' ] ,
164- } ) ;
165-
166- expect ( validateForm ( { formData, includeMessages : false } ) ) . toEqual ( {
167- errors : {
168- test : [ 'required' ] ,
169- }
170- } )
171-
172- restoreMocks ( ) ;
173- } ) ;
174-
175- it ( 'can bail on first error if bail is on second field' , ( ) => {
176- const formData = {
177- test : {
178- value : null ,
179- validation : 'required' ,
180- } ,
181- test2 : {
182- value : null ,
183- validation : 'required|bail' ,
184- }
185- }
186-
187- const validateField = mockValidateField ( ) ;
188- validateField . mockReturnValueOnce ( {
189- errors : [ 'required' ] ,
190- } ) ;
191- validateField . mockReturnValueOnce ( {
192- errors : [ 'required' ] ,
193- } ) ;
194-
195- expect ( validateForm ( { formData, includeMessages : false } ) ) . toEqual ( {
196- errors : {
197- test : [ 'required' ] ,
198- }
199- } )
200-
201- restoreMocks ( ) ;
202- } ) ;
203-
204- it ( 'can bail on first error if bail is on third field' , ( ) => {
205113 const formData = {
206114 test : {
207115 value : null ,
208116 validation : 'required' ,
209117 } ,
210118 test2 : {
211- value : null ,
212- validation : 'required' ,
213- } ,
214- test3 : {
215119 value : null ,
216120 validation : 'required|bail' ,
217121 }
@@ -224,9 +128,6 @@ describe('Form Validator', () => {
224128 validateField . mockReturnValueOnce ( {
225129 errors : [ 'required' ] ,
226130 } ) ;
227- validateField . mockReturnValueOnce ( {
228- errors : [ 'required' ] ,
229- } ) ;
230131
231132 expect ( validateForm ( { formData, includeMessages : false } ) ) . toEqual ( {
232133 errors : {
@@ -286,9 +187,7 @@ describe('Form Validator', () => {
286187 } )
287188
288189 describe ( 'validateField' , ( ) => {
289- function createFieldData ( { key= "test" , value, validation} = { } ) {
290- return { key, value, validation } ;
291- }
190+
292191
293192 const oldWarn = console . warn ;
294193
@@ -402,4 +301,44 @@ describe('Form Validator', () => {
402301
403302 } )
404303
405- } )
304+ } )
305+
306+ function createFieldData ( { key= "test" , value, validation} = { } ) {
307+ return { key, value, validation } ;
308+ }
309+
310+ var mockedRules = [ ] ;
311+ var mockedMessages = { } ;
312+ function mockValidateField ( returnVal ) {
313+ const mock = jest . fn ( ) ;
314+ mock . mockReturnValue ( returnVal ) ;
315+ validate . validateField = mock ;
316+ return mock ;
317+ }
318+
319+ function mockRule ( name , returnVal ) {
320+ const mock = jest . fn ( ) ;
321+ mock . mockReturnValue ( returnVal ) ;
322+ RULES [ name ] = mock ;
323+ mockedRules . push ( name ) ;
324+ return mock ;
325+ }
326+
327+ function mockMessage ( rule , returnVal ) {
328+ const mock = jest . fn ( ) ;
329+ mock . mockReturnValue ( returnVal ) ;
330+ mockedMessages [ rule ] = getMessageHandler ( rule ) ;
331+ setMessageHandler ( rule , mock ) ;
332+ return mock ;
333+ }
334+
335+ function restoreMocks ( ) {
336+ validate . validateForm = validateForm ;
337+ validate . validateField = validateField ;
338+
339+ mockedRules . forEach ( rule => RULES [ rule ] = oldRules [ rule ] ) ;
340+ mockedRules . length = 0 ;
341+
342+ Object . keys ( mockedMessages ) . forEach ( rule => setMessageHandler ( rule , mockedMessages [ rule ] ) ) ;
343+ mockedMessages . length = 0 ;
344+ }
0 commit comments