From f1944d89f022f0ed415fee7ac039b6864fd8794c Mon Sep 17 00:00:00 2001 From: "Lukas Klinzing (WS)" Date: Sun, 8 Jul 2018 20:24:23 +0200 Subject: [PATCH] fixes #61 --- src/rulesRunner.js | 4 ++-- test/issues/61.test.js | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 test/issues/61.test.js diff --git a/src/rulesRunner.js b/src/rulesRunner.js index 1e82cbdb..85776793 100644 --- a/src/rulesRunner.js +++ b/src/rulesRunner.js @@ -35,10 +35,10 @@ export default function rulesRunner( schema, uiSchema, rules, - Engine, + engine, extraActions ) { - let engine = new Engine([], schema); + engine = typeof engine === "function" ? new engine([], schema) : engine; normRules(rules).forEach(rule => engine.addRule(rule)); return formData => { diff --git a/test/issues/61.test.js b/test/issues/61.test.js new file mode 100644 index 00000000..69cc7c85 --- /dev/null +++ b/test/issues/61.test.js @@ -0,0 +1,21 @@ +import rulesRunner from "../../src/rulesRunner"; +import Engine from "json-rules-engine-simplified"; + +test("rulesRunner with own Engine instantiation", () => { + let rules = [ + { + conditions: { name: { not: "empty" } }, + event: "foo", + }, + ]; + + rulesRunner( + // schema + { properties: { name: { type: "string" } } }, + // ui + {}, + // rules + rules, + new Engine(rules) + )({}).then(() => {}); +});