Skip to content

Commit 56f1249

Browse files
committed
Update or.json
1 parent d6f02aa commit 56f1249

File tree

1 file changed

+155
-1
lines changed

1 file changed

+155
-1
lines changed

suites/control/or.json

+155-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,155 @@
1-
[]
1+
[
2+
"Basic Checks",
3+
{
4+
"description": "Two true values should be true",
5+
"rule": { "or": [true, true] },
6+
"data": null,
7+
"result": true
8+
},
9+
{
10+
"description": "false or true should be true",
11+
"rule": { "or": [false, true] },
12+
"data": null,
13+
"result": true
14+
},
15+
{
16+
"description": "true or false should be true",
17+
"rule": { "or": [true, false] },
18+
"data": null,
19+
"result": true
20+
},
21+
{
22+
"description": "Two false values should be false",
23+
"rule": { "or": [false, false] },
24+
"data": null,
25+
"result": false
26+
},
27+
{
28+
"description": "All true values should be true",
29+
"rule": { "or": [true, true, true] },
30+
"data": null,
31+
"result": true
32+
},
33+
{
34+
"description": "Any true value should be true",
35+
"rule": { "or": [true, true, false] },
36+
"data": null,
37+
"result": true
38+
},
39+
{
40+
"description": "Or with a single true value should be true",
41+
"rule": { "or": [true] },
42+
"data": null,
43+
"result": true
44+
},
45+
{
46+
"description": "When all values are truthy, the first truthy value should be returned",
47+
"rule": { "or": [1, 2, 3] },
48+
"data": null,
49+
"result": 1
50+
},
51+
{
52+
"description": "When all values are truthy, the first truthy value should be returned (2)",
53+
"rule": { "or": [true, 1, {}] },
54+
"data": null,
55+
"result": true
56+
},
57+
{
58+
"description": "Or with a single falsey value should be return the falsy value",
59+
"rule": { "or": [[]] },
60+
"data": null,
61+
"result": []
62+
},
63+
{
64+
"description": "Or with a single falsey value should be return the falsy value (2)",
65+
"rule": { "or": [0] },
66+
"data": null,
67+
"result": 0
68+
},
69+
{
70+
"description": "Or with a single falsey value should be return the falsy value (3)",
71+
"rule": { "or": [""] },
72+
"data": null,
73+
"result": ""
74+
},
75+
{
76+
"description": "Or with a single false value should be false",
77+
"rule": { "or": [false] },
78+
"data": null,
79+
"result": false
80+
},
81+
{
82+
"description": "Or with 2 truthy values should return the first truthy value",
83+
"rule": { "or": [1, 3] },
84+
"data": null,
85+
"result": 1
86+
},
87+
{
88+
"description": "Or with a truthy value and a false value should return the truthy value",
89+
"rule": { "or": [3, false] },
90+
"data": null,
91+
"result": 3
92+
},
93+
{
94+
"description": "Or with a truthy value and a false value should return the truthy value (2)",
95+
"rule": { "or": [false, 3] },
96+
"data": null,
97+
"result": 3
98+
},
99+
{
100+
"description": "Empty array is falsy, so it is not returned if the second argument is truthy",
101+
"rule": { "or": [[], true] },
102+
"data": null,
103+
"result": true
104+
},
105+
{
106+
"description": "0 is falsy, so it is not returned if the second argument is truthy",
107+
"rule": { "or": [0, true] },
108+
"data": null,
109+
"result": true
110+
},
111+
{
112+
"description": "Empty string is falsy, so it is not returned if the second argument is truthy",
113+
"rule": { "or": ["", true] },
114+
"data": null,
115+
"result": true
116+
},
117+
{
118+
"description": "0 as a string is truthy, so the first truthy value is returned",
119+
"rule": { "or": ["0", true] },
120+
"data": null,
121+
"result": "0"
122+
},
123+
{
124+
"description": "Or with no arguments should return false",
125+
"rule": { "or": [] },
126+
"data": null,
127+
"result": false
128+
},
129+
"Valid Arguments Checks",
130+
{
131+
"description": "Or with non-array arguments should throw",
132+
"rule": { "or": true },
133+
"data": null,
134+
"error": { "type": "Invalid Arguments" }
135+
},
136+
"Short Circuiting Checks",
137+
{
138+
"description": "Or will not interpret the second argument if the first is false",
139+
"rule": { "or": [true, { "throw": "Not Lazy" }] },
140+
"data": null,
141+
"result": true
142+
},
143+
{
144+
"description": "Or will not interpret the second argument if the first is falsy",
145+
"rule": { "or": [1, { "throw": "Not Lazy" }] },
146+
"data": null,
147+
"result": 1
148+
},
149+
{
150+
"description": "Or will not interpret the nth argument if any value before it is false",
151+
"rule": { "or": [false, 0, null, { "val": [] }, [], 4, { "throw": "Not Lazy" }] },
152+
"data": null,
153+
"result": 4
154+
}
155+
]

0 commit comments

Comments
 (0)