diff --git a/__tests__/traverse.test.js b/__tests__/traverse.test.js index 29c68b3e4..b137b3c83 100644 --- a/__tests__/traverse.test.js +++ b/__tests__/traverse.test.js @@ -3,9 +3,9 @@ import {enrichRule} from '../source/engine/rules' import {treatRuleRoot} from '../source/engine/traverse' import {analyseSituation} from '../source/engine/traverse' -describe('treatRuleRoot', function() { +let stateSelector = (state, name) => null - let stateSelector = (state, name) => null +describe('treatRuleRoot', function() { it('should directly return simple numerical values', function() { let rule = {formule: 3269} @@ -16,8 +16,6 @@ describe('treatRuleRoot', function() { describe('analyseSituation', function() { - let stateSelector = (state, name) => null - it('should directly return simple numerical values', function() { let rule = {name: "startHere", formule: 3269} let rules = [rule] @@ -30,6 +28,10 @@ describe('analyseSituation', function() { expect(analyseSituation(rules,"startHere")(stateSelector)).to.have.property('nodeValue',101) }); +}); + +describe('analyseSituation on raw rules', function() { + it('should handle expressions referencing other rules', function() { let rawRules = [ {nom: "startHere", formule: "3259 + dix", espace: "top"}, @@ -38,4 +40,24 @@ describe('analyseSituation', function() { expect(analyseSituation(rules,"startHere")(stateSelector)).to.have.property('nodeValue',3269) }); + it('should handle applicability conditions', function() { + let rawRules = [ + {nom: "startHere", formule: "3259 + dix", espace: "top"}, + {nom: "dix", formule: 10, espace: "top", "non applicable si" : "vrai"}, + {nom: "vrai", formule: "2 > 1", espace: "top"}], + rules = rawRules.map(enrichRule) + expect(analyseSituation(rules,"startHere")(stateSelector)).to.have.property('nodeValue',3259) + }); + + /* TODO: make this pass + it('should handle applicability conditions', function() { + let rawRules = [ + {nom: "startHere", formule: "3259 + dix", espace: "top"}, + {nom: "dix", formule: 10, espace: "top", "non applicable si" : "vrai"}, + {nom: "vrai", formule: "1", espace: "top"}], + rules = rawRules.map(enrichRule) + expect(analyseSituation(rules,"startHere")(stateSelector)).to.have.property('nodeValue',3259) + }); + */ + });