|
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