diff --git a/src/engine.js b/src/engine.js index 2a0ee48..178bc83 100644 --- a/src/engine.js +++ b/src/engine.js @@ -66,6 +66,7 @@ class Engine extends EventEmitter { let index = this.rules.indexOf(rule) if (index === -1) return false + this.prioritizedRules = null return Boolean(this.rules.splice(index, 1).length) } diff --git a/test/engine.test.js b/test/engine.test.js index f72c451..f5b48cb 100644 --- a/test/engine.test.js +++ b/test/engine.test.js @@ -89,6 +89,7 @@ describe('Engine', () => { expect(engine.rules.length).to.equal(1) engine.removeRule(rule) expect(engine.rules.length).to.equal(0) + expect(engine.prioritizedRules).to.equal(null) }) }) @@ -106,6 +107,14 @@ describe('Engine', () => { const isRemoved = engine.removeRule(rule) expect(isRemoved).to.equal(false) }) + + it('clears the "prioritizedRules" cache', () => { + let rule = new Rule(factories.rule()) + engine.addRule(rule) + engine.prioritizeRules() + engine.removeRule(rule) + expect(engine.prioritizedRules).to.equal(null) + }) }) describe('addOperator()', () => {