✅ Tester l'évaluation des variables conditionnelles et formatées
parent
f7f088f378
commit
2102ae0944
|
@ -0,0 +1,54 @@
|
|||
import {expect} from 'chai'
|
||||
import {evaluateBottomUp, evaluateVariable} from '../source/engine/variables'
|
||||
|
||||
describe('evaluateVariable', function() {
|
||||
|
||||
it ("should directly return the value of any rule that specifies a format (i.e currency, duration)", function() {
|
||||
let rule = {format: "euros"},
|
||||
state = {salaire: "2300"},
|
||||
situationGate = (name) => state[name]
|
||||
|
||||
expect(evaluateVariable(situationGate, "salaire", rule)).to.equal("2300")
|
||||
});
|
||||
|
||||
it ("should interpret rules without a formula as boolean-valued, with 'oui' for true", function() {
|
||||
let rule = {},
|
||||
state = {condition: "oui"},
|
||||
situationGate = (name) => state[name]
|
||||
|
||||
expect(evaluateVariable(situationGate, "condition", rule)).to.be.true
|
||||
});
|
||||
|
||||
it ("should interpret rules without a formula as boolean-valued, with values other than 'oui' meaning false", function() {
|
||||
let rule = {},
|
||||
state = {condition: "nope"},
|
||||
situationGate = (name) => state[name]
|
||||
|
||||
expect(evaluateVariable(situationGate, "condition", rule)).to.be.false
|
||||
});
|
||||
|
||||
it ("should interpret rules with 'one of these', with 'oui' for true", function() {
|
||||
let rule = {formule: {"une possibilité": ["noir","blanc"]}},
|
||||
state = {condition: "oui"},
|
||||
situationGate = (name) => state[name]
|
||||
|
||||
expect(evaluateVariable(situationGate, "condition", rule)).to.be.true
|
||||
});
|
||||
|
||||
it ("should walk up the namespace chain until it finds the tail as the value", function() {
|
||||
let rule = {formule: {"une possibilité": ["noir","blanc"]}},
|
||||
state = {"contrat salarié . CDD . motif": "classique . accroissement activité"},
|
||||
situationGate = (name) => state[name]
|
||||
|
||||
expect(evaluateVariable(situationGate, "contrat salarié . CDD . motif . classique . accroissement activité", rule)).to.be.true
|
||||
});
|
||||
|
||||
it ("should return null if a value isn't found for the name given", function() {
|
||||
let rule = {formule: {"une possibilité": ["noir","blanc"]}},
|
||||
state = {"condition": "classique . accroissement activité"},
|
||||
situationGate = (name) => state[name]
|
||||
|
||||
expect(evaluateVariable(situationGate, "contrat salarié . CDD . motif . classique . accroissement activité", rule)).to.be.null
|
||||
});
|
||||
|
||||
});
|
Loading…
Reference in New Issue