|
2 | 2 |
|
3 | 3 | import sinon from 'sinon' |
4 | 4 | import engineFactory, { Fact, Rule, Operator } from '../src/index' |
| 5 | +import defaultOperators from '../src/engine-default-operators' |
5 | 6 |
|
6 | 7 | describe('Engine', () => { |
| 8 | + const operatorCount = defaultOperators.length |
| 9 | + |
7 | 10 | let engine |
8 | 11 | let sandbox |
9 | 12 | before(() => { |
@@ -31,7 +34,7 @@ describe('Engine', () => { |
31 | 34 | it('initializes with the default state', () => { |
32 | 35 | expect(engine.status).to.equal('READY') |
33 | 36 | expect(engine.rules.length).to.equal(0) |
34 | | - expect(engine.operators.size).to.equal(10) |
| 37 | + expect(engine.operators.size).to.equal(operatorCount) |
35 | 38 | }) |
36 | 39 |
|
37 | 40 | it('can be initialized with rules', () => { |
@@ -119,37 +122,37 @@ describe('Engine', () => { |
119 | 122 |
|
120 | 123 | describe('addOperator()', () => { |
121 | 124 | it('adds the operator', () => { |
122 | | - expect(engine.operators.size).to.equal(10) |
| 125 | + expect(engine.operators.size).to.equal(operatorCount) |
123 | 126 | engine.addOperator('startsWithLetter', (factValue, jsonValue) => { |
124 | 127 | return factValue[0] === jsonValue |
125 | 128 | }) |
126 | | - expect(engine.operators.size).to.equal(11) |
| 129 | + expect(engine.operators.size).to.equal(operatorCount + 1) |
127 | 130 | expect(engine.operators.get('startsWithLetter')).to.exist() |
128 | 131 | expect(engine.operators.get('startsWithLetter')).to.be.an.instanceof(Operator) |
129 | 132 | }) |
130 | 133 |
|
131 | 134 | it('accepts an operator instance', () => { |
132 | | - expect(engine.operators.size).to.equal(10) |
| 135 | + expect(engine.operators.size).to.equal(operatorCount) |
133 | 136 | const op = new Operator('my-operator', _ => true) |
134 | 137 | engine.addOperator(op) |
135 | | - expect(engine.operators.size).to.equal(11) |
| 138 | + expect(engine.operators.size).to.equal(operatorCount + 1) |
136 | 139 | expect(engine.operators.get('my-operator')).to.equal(op) |
137 | 140 | }) |
138 | 141 | }) |
139 | 142 |
|
140 | 143 | describe('removeOperator()', () => { |
141 | 144 | it('removes the operator', () => { |
142 | | - expect(engine.operators.size).to.equal(10) |
| 145 | + expect(engine.operators.size).to.equal(operatorCount) |
143 | 146 | engine.addOperator('startsWithLetter', (factValue, jsonValue) => { |
144 | 147 | return factValue[0] === jsonValue |
145 | 148 | }) |
146 | | - expect(engine.operators.size).to.equal(11) |
| 149 | + expect(engine.operators.size).to.equal(operatorCount + 1) |
147 | 150 | engine.removeOperator('startsWithLetter') |
148 | | - expect(engine.operators.size).to.equal(10) |
| 151 | + expect(engine.operators.size).to.equal(operatorCount) |
149 | 152 | }) |
150 | 153 |
|
151 | 154 | it('can only remove added operators', () => { |
152 | | - expect(engine.operators.size).to.equal(10) |
| 155 | + expect(engine.operators.size).to.equal(operatorCount) |
153 | 156 | const isRemoved = engine.removeOperator('nonExisting') |
154 | 157 | expect(isRemoved).to.equal(false) |
155 | 158 | }) |
|
0 commit comments