Skip to content

Commit 3081e73

Browse files
committed
Add additional error boundaries
1 parent 647a977 commit 3081e73

File tree

7 files changed

+43
-0
lines changed

7 files changed

+43
-0
lines changed

defaultMethods.js

+1
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ const defaultMethods = {
8888
if (typeof data === 'number') return -data
8989
if (typeof data === 'boolean') return -data
9090
if (typeof data === 'object' && !Array.isArray(data)) return Number.NaN
91+
if (data[0] && typeof data[0] === 'object') return Number.NaN
9192
if (data.length === 1) return -data[0]
9293
let res = data[0]
9394
for (let i = 1; i < data.length; i++) {

suites/divide.json

+6
Original file line numberDiff line numberDiff line change
@@ -164,5 +164,11 @@
164164
"rule": { "/": [1, "a"] },
165165
"result": { "error": "NaN" },
166166
"data": null
167+
},
168+
{
169+
"description": "Divide with Array produces NaN",
170+
"rule": { "/": [1, [1]] },
171+
"result": { "error": "NaN" },
172+
"data": null
167173
}
168174
]

suites/errors.json

+6
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,11 @@
2323
"rule": { "??": [{ "+": [{ "val": "hello" }]}, 1] },
2424
"result": 1,
2525
"data": { "hello": "world" }
26+
},
27+
{
28+
"description": "Errors are just data",
29+
"rule": { "??": [{ "val": "x" }, 1]},
30+
"data": { "x": { "error": "Some error" }},
31+
"result": 1
2632
}
2733
]

suites/minus.json

+6
Original file line numberDiff line numberDiff line change
@@ -126,5 +126,11 @@
126126
"rule": { "-": ["Hey", 1] },
127127
"result": { "error": "NaN" },
128128
"data": null
129+
},
130+
{
131+
"description": "Subtraction with Array produces NaN",
132+
"rule": { "-": [[1], 1] },
133+
"result": { "error": "NaN" },
134+
"data": null
129135
}
130136
]

suites/modulo.json

+6
Original file line numberDiff line numberDiff line change
@@ -169,5 +169,11 @@
169169
"rule": { "%": ["Hey", 1] },
170170
"result": { "error": "NaN" },
171171
"data": null
172+
},
173+
{
174+
"description": "Modulo with array produces NaN",
175+
"rule": { "%": [[1], 1] },
176+
"result": { "error": "NaN" },
177+
"data": null
172178
}
173179
]

suites/multiply.json

+6
Original file line numberDiff line numberDiff line change
@@ -156,5 +156,11 @@
156156
"rule": { "*": ["Hey", 1] },
157157
"result": { "error": "NaN" },
158158
"data": null
159+
},
160+
{
161+
"description": "Multiply with Array produces NaN",
162+
"rule": { "*": [[1], 1] },
163+
"result": { "error": "NaN" },
164+
"data": null
159165
}
160166
]

suites/plus.json

+12
Original file line numberDiff line numberDiff line change
@@ -170,5 +170,17 @@
170170
"rule": { "+": [{ "val": "x" }, 1] },
171171
"result": { "error": "NaN" },
172172
"data": { "x": {} }
173+
},
174+
{
175+
"description": "Plus Operator with Single Operand, Invalid String Produces NaN",
176+
"rule": { "+": "Hello" },
177+
"result": { "error": "NaN" },
178+
"data": null
179+
},
180+
{
181+
"description": "Plus Operator with Single Operand, Array Input Produces NaN",
182+
"rule": { "+": [[1]] },
183+
"result": { "error": "NaN" },
184+
"data": null
173185
}
174186
]

0 commit comments

Comments
 (0)