@@ -14,15 +14,21 @@ function conditionsFrom(rules) {
14
14
return rules . map ( ( { conditions } ) => conditions ) ;
15
15
}
16
16
17
+ let defSchema = { properties : {
18
+ firstName : { type : "string" } ,
19
+ password : { type : "string" } ,
20
+ age : { type : "integer" }
21
+ } } ;
22
+
17
23
test ( "Check predicates" , ( ) => {
18
24
const conditions = conditionsFrom ( [
19
25
{ conditions : { firstName : "epty" } } ,
20
26
{ conditions : { age : { greater : 10 } } } ,
21
27
{ conditions : { age : { less : 20 } } } ,
22
28
] ) ;
23
29
24
- let predicates = listInvalidPredicates ( conditions ) ;
25
- expect ( predicates ) . toEqual ( [ "epty" ] ) ;
30
+ expect ( listAllPredicates ( conditions , defSchema ) ) . toEqual ( [ "epty" , "greater" , "less" ] ) ;
31
+ expect ( listInvalidPredicates ( conditions , defSchema ) ) . toEqual ( [ "epty" ] ) ;
26
32
} ) ;
27
33
28
34
test ( "Two field rule " , ( ) => {
@@ -41,7 +47,7 @@ test("Two field rule ", () => {
41
47
} ,
42
48
] ) ;
43
49
44
- let predicates = listAllPredicates ( conditions ) ;
50
+ let predicates = listAllPredicates ( conditions , defSchema ) ;
45
51
expect ( predicates ) . toEqual ( [ "empty" , "greater" , "less" ] ) ;
46
52
47
53
let fields = listAllFields ( conditions ) ;
@@ -65,7 +71,7 @@ test("3 field rule ", () => {
65
71
} ,
66
72
] ) ;
67
73
68
- let predicates = listAllPredicates ( conditions ) ;
74
+ let predicates = listAllPredicates ( conditions , defSchema ) ;
69
75
expect ( predicates ) . toEqual ( [ "empty" , "greater" , "less" ] ) ;
70
76
71
77
let fields = listAllFields ( conditions ) ;
@@ -87,19 +93,12 @@ test("invalidate predicates", () => {
87
93
} ,
88
94
] ) ;
89
95
90
- expect ( listAllPredicates ( invalidConditions ) ) . toEqual ( [ "greater" , "less" , "wtf" ] ) ;
91
- expect ( listInvalidPredicates ( invalidConditions ) ) . toEqual ( [ "wtf" ] ) ;
92
- expect ( ( ) => validatePredicates ( invalidConditions ) ) . toThrow ( ) ;
93
- expect ( ( ) => testInProd ( validatePredicates ( invalidConditions ) ) ) . not . toBeUndefined ( ) ;
96
+ expect ( listAllPredicates ( invalidConditions , defSchema ) ) . toEqual ( [ "greater" , "less" , "wtf" ] ) ;
97
+ expect ( listInvalidPredicates ( invalidConditions , defSchema ) ) . toEqual ( [ "wtf" ] ) ;
98
+ expect ( ( ) => validatePredicates ( invalidConditions , defSchema ) ) . toThrow ( ) ;
99
+ expect ( ( ) => testInProd ( validatePredicates ( invalidConditions , defSchema ) ) ) . not . toBeUndefined ( ) ;
94
100
} ) ;
95
101
96
- let schema = {
97
- properties : {
98
- firstName : { type : "string" } ,
99
- password : { type : "string" } ,
100
- } ,
101
- } ;
102
-
103
102
test ( "invalid field" , ( ) => {
104
103
let invalidFieldConditions = conditionsFrom ( [
105
104
{
@@ -116,8 +115,8 @@ test("invalid field", () => {
116
115
] ) ;
117
116
118
117
expect ( listAllFields ( invalidFieldConditions ) ) . toEqual ( [ "lastName" , "firstName" ] ) ;
119
- expect ( listInvalidFields ( invalidFieldConditions , schema ) ) . toEqual ( [ "lastName" , ] ) ;
120
- expect ( ( ) => validateConditionFields ( invalidFieldConditions , schema ) ) . toThrow ( ) ;
118
+ expect ( listInvalidFields ( invalidFieldConditions , defSchema ) ) . toEqual ( [ "lastName" , ] ) ;
119
+ expect ( ( ) => validateConditionFields ( invalidFieldConditions , defSchema ) ) . toThrow ( ) ;
121
120
} ) ;
122
121
123
122
test ( "invalid OR" , ( ) => {
@@ -130,7 +129,7 @@ test("invalid OR", () => {
130
129
} ,
131
130
] ) ;
132
131
133
- expect ( ( ) => validate ( invalidOrConditions , schema ) ) . toThrow ( ) ;
132
+ expect ( ( ) => validatePredicates ( invalidOrConditions , defSchema ) ) . toThrow ( ) ;
134
133
} ) ;
135
134
136
135
test ( "invalid field or" , ( ) => {
@@ -150,7 +149,7 @@ test("invalid field or", () => {
150
149
151
150
expect ( ( ) => predicatesFromRule ( invalidFieldOr [ 0 ] . firstName ) ) . toThrow ( ) ;
152
151
expect ( testInProd ( ( ) => predicatesFromRule ( invalidFieldOr [ 0 ] . firstName ) ) ) . toEqual ( [ ] ) ;
153
- expect ( ( ) => validatePredicates ( invalidFieldOr , schema ) ) . toThrow ( ) ;
152
+ expect ( ( ) => validatePredicates ( invalidFieldOr , defSchema ) ) . toThrow ( ) ;
154
153
} ) ;
155
154
156
155
test ( "invalid field NOT or" , ( ) => {
@@ -165,7 +164,7 @@ test("invalid field NOT or", () => {
165
164
} ,
166
165
] ) ;
167
166
168
- expect ( ( ) => validatePredicates ( invalidFieldNotWithOr , schema ) ) . toThrow ( ) ;
167
+ expect ( ( ) => validatePredicates ( invalidFieldNotWithOr , defSchema ) ) . toThrow ( ) ;
169
168
} ) ;
170
169
171
170
test ( "valid field or" , ( ) => {
@@ -182,8 +181,8 @@ test("valid field or", () => {
182
181
} ,
183
182
] ) ;
184
183
185
- expect ( predicatesFromCondition ( validFieldOr [ 0 ] ) ) . toEqual ( [ "is" , "is" ] ) ;
186
- expect ( validateConditionFields ( validFieldOr , schema ) ) . toBeUndefined ( ) ;
184
+ expect ( predicatesFromCondition ( validFieldOr [ 0 ] , defSchema ) ) . toEqual ( [ "is" , "is" ] ) ;
185
+ expect ( validateConditionFields ( validFieldOr , defSchema ) ) . toBeUndefined ( ) ;
187
186
} ) ;
188
187
189
188
test ( "extract predicates from when with or & and" , ( ) => {
0 commit comments