Skip to content

Commit 92576b8

Browse files
author
Cache Hamm
committed
add test coverage around ruleResult mutation
1 parent ebfb2e8 commit 92576b8

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

test/engine-event.test.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,26 @@ describe('Engine: event', () => {
231231

232232
context('rule events: simple', () => {
233233
beforeEach(() => simpleSetup())
234+
235+
it('the rule result is a _copy_ of the rule`s conditions, and unaffected by mutation', async () => {
236+
let rule = engine.rules[0]
237+
let firstPass
238+
rule.on('success', function (e, almanac, ruleResult) {
239+
firstPass = ruleResult
240+
delete ruleResult.conditions.any // subsequently modify the conditions in this rule result
241+
})
242+
await engine.run()
243+
244+
// run the engine again, now that ruleResult.conditions was modified
245+
let secondPass
246+
rule.on('success', function (e, almanac, ruleResult) {
247+
secondPass = ruleResult
248+
})
249+
await engine.run()
250+
251+
expect(firstPass).to.deep.equal(secondPass) // second pass was unaffected by first pass
252+
})
253+
234254
it('on-success, it passes the event type and params', async () => {
235255
let failureSpy = sinon.spy()
236256
let successSpy = sinon.spy()

0 commit comments

Comments
 (0)