1+ [
2+ " # Length operator tests" ,
3+ {
4+ "description" : " Length of a basic array" ,
5+ "rule" : { "length" : {"val" : " array" } },
6+ "data" : { "array" : [1 , 2 , 3 , 4 , 5 ] },
7+ "result" : 5
8+ },
9+ {
10+ "description" : " Length of an empty array returns 0" ,
11+ "rule" : { "length" : {"val" : " emptyArray" } },
12+ "data" : { "emptyArray" : [] },
13+ "result" : 0
14+ },
15+ {
16+ "description" : " Length of a string counts characters" ,
17+ "rule" : { "length" : {"val" : " str" } },
18+ "data" : { "str" : " hello" },
19+ "result" : 5
20+ },
21+ {
22+ "description" : " Length of an empty string returns 0" ,
23+ "rule" : { "length" : {"val" : " empty" } },
24+ "data" : { "empty" : " " },
25+ "result" : 0
26+ },
27+ {
28+ "description" : " Length of missing variable returns null" ,
29+ "rule" : { "length" : {"val" : " missing" } },
30+ "data" : {},
31+ "error" : { "type" : " Invalid Arguments" }
32+ },
33+ {
34+ "description" : " Length operator with null argument throws error" ,
35+ "rule" : { "length" : null },
36+ "data" : {},
37+ "error" : { "type" : " Invalid Arguments" }
38+ },
39+ {
40+ "description" : " Length operator with numeric argument throws error" ,
41+ "rule" : { "length" : 123 },
42+ "data" : {},
43+ "error" : { "type" : " Invalid Arguments" }
44+ },
45+ {
46+ "description" : " Length operator with boolean argument throws error" ,
47+ "rule" : { "length" : true },
48+ "data" : {},
49+ "error" : { "type" : " Invalid Arguments" }
50+ },
51+ {
52+ "description" : " Conditional based on array length (longer than 3)" ,
53+ "rule" : { "if" : [{ ">" : [{ "length" : {"val" : " array" } }, 3 ] }, " long" , " short" ] },
54+ "data" : { "array" : [1 , 2 , 3 , 4 ] },
55+ "result" : " long"
56+ },
57+ {
58+ "description" : " Conditional based on array length (not longer than 3)" ,
59+ "rule" : { "if" : [{ ">" : [{ "length" : {"val" : " array" } }, 3 ] }, " long" , " short" ] },
60+ "data" : { "array" : [1 , 2 , 3 ] },
61+ "result" : " short"
62+ },
63+ {
64+ "description" : " Length of nested array counts top level elements" ,
65+ "rule" : { "length" : {"val" : " nestedArray" } },
66+ "data" : { "nestedArray" : [[1 , 2 ], [3 , 4 ], [5 , 6 ]] },
67+ "result" : 3
68+ },
69+ {
70+ "description" : " Length of array of objects counts objects" ,
71+ "rule" : { "length" : {"val" : " objectArray" } },
72+ "data" : { "objectArray" : [{"a" : 1 }, {"b" : 2 }, {"c" : 3 }] },
73+ "result" : 3
74+ }
75+ ]
0 commit comments