@@ -39,14 +39,39 @@ describe("Test rule: any", () => {
3939 expect ( check ( [ ] ) ) . toEqual ( true ) ;
4040 expect ( check ( { } ) ) . toEqual ( true ) ;
4141 } ) ;
42+
43+ it ( "should allow custom metas" , async ( ) => {
44+ const schema = {
45+ $$foo : {
46+ foo : "bar"
47+ } ,
48+ $$root : true ,
49+ type : "any" ,
50+ optional : true
51+ } ;
52+ const clonedSchema = { ...schema } ;
53+ const check = v . compile ( schema ) ;
54+
55+ expect ( schema ) . toStrictEqual ( clonedSchema ) ;
56+
57+ expect ( check ( null ) ) . toEqual ( true ) ;
58+ expect ( check ( undefined ) ) . toEqual ( true ) ;
59+ expect ( check ( 0 ) ) . toEqual ( true ) ;
60+ expect ( check ( 1 ) ) . toEqual ( true ) ;
61+ expect ( check ( "" ) ) . toEqual ( true ) ;
62+ expect ( check ( "true" ) ) . toEqual ( true ) ;
63+ expect ( check ( "false" ) ) . toEqual ( true ) ;
64+ expect ( check ( [ ] ) ) . toEqual ( true ) ;
65+ expect ( check ( { } ) ) . toEqual ( true ) ;
66+ } ) ;
4267 } ) ;
4368
4469 describe ( "new case (with considerNullAsAValue flag set to true)" , ( ) => {
4570 const v = new Validator ( { considerNullAsAValue : true } ) ;
46-
71+
4772 it ( "should give back true anyway" , ( ) => {
4873 const check = v . compile ( { $$root : true , type : "any" } ) ;
49-
74+
5075 expect ( check ( null ) ) . toEqual ( true ) ;
5176 expect ( check ( undefined ) ) . toEqual ( [ { type : "required" , actual : undefined , message : "The '' field is required." } ] ) ;
5277 expect ( check ( 0 ) ) . toEqual ( true ) ;
@@ -57,10 +82,35 @@ describe("Test rule: any", () => {
5782 expect ( check ( [ ] ) ) . toEqual ( true ) ;
5883 expect ( check ( { } ) ) . toEqual ( true ) ;
5984 } ) ;
60-
85+
6186 it ( "should give back true anyway as optional" , ( ) => {
6287 const check = v . compile ( { $$root : true , type : "any" , optional : true } ) ;
63-
88+
89+ expect ( check ( null ) ) . toEqual ( true ) ;
90+ expect ( check ( undefined ) ) . toEqual ( true ) ;
91+ expect ( check ( 0 ) ) . toEqual ( true ) ;
92+ expect ( check ( 1 ) ) . toEqual ( true ) ;
93+ expect ( check ( "" ) ) . toEqual ( true ) ;
94+ expect ( check ( "true" ) ) . toEqual ( true ) ;
95+ expect ( check ( "false" ) ) . toEqual ( true ) ;
96+ expect ( check ( [ ] ) ) . toEqual ( true ) ;
97+ expect ( check ( { } ) ) . toEqual ( true ) ;
98+ } ) ;
99+
100+ it ( "should allow custom metas" , async ( ) => {
101+ const schema = {
102+ $$foo : {
103+ foo : "bar"
104+ } ,
105+ $$root : true ,
106+ type : "any" ,
107+ optional : true
108+ } ;
109+ const clonedSchema = { ...schema } ;
110+ const check = v . compile ( schema ) ;
111+
112+ expect ( schema ) . toStrictEqual ( clonedSchema ) ;
113+
64114 expect ( check ( null ) ) . toEqual ( true ) ;
65115 expect ( check ( undefined ) ) . toEqual ( true ) ;
66116 expect ( check ( 0 ) ) . toEqual ( true ) ;
@@ -72,4 +122,4 @@ describe("Test rule: any", () => {
72122 expect ( check ( { } ) ) . toEqual ( true ) ;
73123 } ) ;
74124 } ) ;
75- } ) ;
125+ } ) ;
0 commit comments