Skip to content

Commit ea81a98

Browse files
author
Cache Hamm
committed
Restore event emission by event.type
1 parent ca4b637 commit ea81a98

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

src/engine.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ class Engine extends EventEmitter {
149149
debug(`engine::run ruleResult:${ruleResult.result}`)
150150
if (ruleResult.result) {
151151
this.emit('success', rule.event, almanac, ruleResult)
152+
this.emit(rule.event.type, rule.event.params, almanac, ruleResult)
152153
almanac.factValue('success-events', { event: rule.event })
153154
} else {
154155
this.emit('failure', rule.event, almanac, ruleResult)

test/engine-event.test.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,25 @@ describe('Engine: event', () => {
9696
expect(successSpy.callCount).to.equal(1)
9797
})
9898

99+
it('"event.type" passes the event parameters, almanac, and results', async () => {
100+
let failureSpy = sinon.spy()
101+
let successSpy = sinon.spy()
102+
engine.on(event.type, function (params, almanac, ruleResult) {
103+
expect(params).to.eql(event.params)
104+
expect(almanac).to.be.an.instanceof(Almanac)
105+
expect(ruleResult.result).to.be.true()
106+
expect(ruleResult.conditions.any[0].result).to.be.true()
107+
expect(ruleResult.conditions.any[0].factResult).to.equal(21)
108+
expect(ruleResult.conditions.any[1].result).to.be.false()
109+
expect(ruleResult.conditions.any[1].factResult).to.equal(false)
110+
successSpy()
111+
})
112+
engine.on('failure', failureSpy)
113+
await engine.run()
114+
expect(failureSpy.callCount).to.equal(0)
115+
expect(successSpy.callCount).to.equal(1)
116+
})
117+
99118
it('"failure" passes the event, almanac, and results', async () => {
100119
let AGE = 10
101120
let failureSpy = sinon.spy()

0 commit comments

Comments
 (0)