Skip to content

Commit b026cf0

Browse files
committed
#11 some more tests
1 parent 40861ec commit b026cf0

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

src/conditionsMeet.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ import checkField from "./checkField";
33
import { OR, AND, NOT } from "./constants";
44
import selectn from "selectn";
55

6-
export default function conditionsMeet(conditions, formData) {
7-
if (!isObject(conditions) || !isObject(formData)) {
6+
export default function conditionsMeet(condition, formData) {
7+
if (!isObject(condition) || !isObject(formData)) {
88
toError(
9-
`Rule ${JSON.stringify(conditions)} with ${formData} can't be processed`
9+
`Rule ${JSON.stringify(condition)} with ${formData} can't be processed`
1010
);
1111
return false;
1212
}
13-
return Object.keys(conditions).every(ref => {
14-
let refCondition = conditions[ref];
13+
return Object.keys(condition).every(ref => {
14+
let refCondition = condition[ref];
1515
if (ref === OR) {
1616
return refCondition.some(rule => conditionsMeet(rule, formData));
1717
} else if (ref === AND) {

test/conditionsMeet.test.js

+8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import conditionsMeet from "../src/conditionsMeet";
2+
import { testInProd } from "./utils";
23

34
test("sanity checkField", function() {
45
expect(() => conditionsMeet("empty", {})).toThrow();
@@ -53,3 +54,10 @@ test("NOT condition", () => {
5354
conditionsMeet(condition, { firstName: "Will", lastName: "Smith" })
5455
).toBeFalsy();
5556
});
57+
58+
test("invalid condition", () => {
59+
expect(() => conditionsMeet("empty", {})).toThrow();
60+
expect(() => conditionsMeet({}, "empty")).toThrow();
61+
expect(testInProd(() => conditionsMeet("empty", {}))).toBeFalsy();
62+
expect(testInProd(() => conditionsMeet({}, "empty"))).toBeFalsy();
63+
});

test/validation.test.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -181,15 +181,15 @@ test("invalid field NOT or", () => {
181181
{
182182
conditions: {
183183
not: {
184-
firstName: "or",
184+
firstName: "bad",
185185
},
186186
},
187187
event: { type: "remove" },
188188
},
189189
]);
190190

191191
expect(listInvalidPredicates(invalidFieldNotWithOr, defSchema)).toEqual([
192-
"or",
192+
"bad",
193193
]);
194194
expect(() => validatePredicates(invalidFieldNotWithOr, defSchema)).toThrow();
195195
});

0 commit comments

Comments
 (0)