UNPKG

decision

Version:

Decision System Based on Event System and Alleyway Grammer

91 lines (84 loc) 2.52 kB
import Decision from "../index"; import assert from "assert"; describe("base", () => { it("base", (done) => { let decision = new Decision(); decision.loadActions({ "add": (a, b) => a + b, "print": v => { assert.equal(v, 7); done(); } }); decision.loadDecisions(m => { m().when("system::init").data(res => { assert.equal(res, 5); return [ 3, 4 ] }).then("add | print"); }); decision.marmoset.trigger("system", "init", 5); }) it("actionDone", (done) => { let decision = new Decision(); decision.loadActions({ "add": (a, b) => a + b, "print": v => v, "check": v => { assert.equal(v, 7); done(); } }); decision.loadDecisions(m => { m().when("system::init").data(res => { return [ 3, 4 ] }).then("add | print"); m().when("system::actionDone>print").then("check") }); decision.marmoset.trigger("system", "init"); }) it("decisionEnd", (done) => { let counter = 0; let decision = new Decision(); decision.loadActions({ "add": (a, b) => a + b, "print": v => v }); decision.loadDecisions(m => { m().when("system::init").data(res => { return [ 3, 4 ] }).then("add | print").named("first"); }); decision.marmoset.on("system", "decisionEnd", () => { counter++; assert.equal(counter, 1); done(); }); decision.marmoset.trigger("system", "init"); }) it("named", (done) => { let decision = new Decision(); decision.loadActions({ "add": (a, b) => a + b, "print": v => v, "check": v => { assert.equal(v, 7); done(); } }); decision.loadDecisions(m => { m().when("system::init").data(res => { return [ 3, 4 ] }).then("add | print").named("first"); m().when("system::decisionEnd>first").then("check") }); decision.marmoset.trigger("system", "init"); }) });