Possibilité de tester les variables manquantes dans les tests meca

pull/37/head
mama 2017-08-16 15:33:19 +02:00
parent 5012d4f718
commit d35ae49274
3 changed files with 27 additions and 11 deletions

View File

@ -35,7 +35,6 @@ describe('collectMissingVariables', function() {
rules = rawRules.map(enrichRule),
situation = analyseTopDown(rules,"startHere")(stateSelector),
result = collectMissingVariables()(stateSelector,situation)
expect(result).to.have.property('sum . evt . ko')
});

View File

@ -6,26 +6,36 @@
import {expect} from 'chai'
import {enrichRule} from '../source/engine/rules'
import {analyseSituation} from '../source/engine/traverse'
import {analyseTopDown} from '../source/engine/traverse'
import {collectMissingVariables} from '../source/engine/generateQuestions'
import testBatteries from './load-mecanism-tests'
import R from 'ramda'
describe('Mécanismes', () =>
testBatteries.map( battery =>
battery.map(({exemples, nom, test}) =>
exemples && describe(test || 'Nom de test (propriété "test") manquant dans la variable contenant ces "exemples"', () =>
exemples.map(({nom: testTexte, situation, 'valeur attendue': valeur}) =>
exemples.map(({nom: testTexte, situation, 'valeur attendue': valeur, 'variables manquantes': expectedMissing}) =>
it(testTexte + '', () => {
let rules = battery.map(enrichRule),
state = situation || {},
analysis = analyseSituation(rules, nom)(name => state[name])
// console.log('JSON.stringify(analysis', JSON.stringify(analysis))
expect(analysis)
let rules = [...battery, {nom: "startHereHack", formule: {somme: [nom]}}].map(enrichRule),
state = situation || {},
stateSelector = name => state[name],
analysis = analyseTopDown(rules, "startHereHack")(stateSelector),
missing = collectMissingVariables()(stateSelector,analysis)
// console.log('JSON.stringify(analysis', JSON.stringify(analysis))
expect(analysis.root)
.to.have.property(
'nodeValue',
valeur
)
if (expectedMissing) {
expect(R.keys(missing)).to.eql(expectedMissing)
}
})
)
))

View File

@ -4,7 +4,7 @@
- nom: dégradation majeure
- nom: retenue sur dépot de garantie 1
- nom: retenue sur dépot de garantie
test: Aiguillage numérique simple
formule:
aiguillage numérique:
@ -36,7 +36,7 @@
- nom: montant caution
format:
- nom: retenue sur dépot de garantie 2
- nom: deuxième retenue sur dépot de garantie
test: Imbrication d'aiguillages numériques
formule:
aiguillage numérique:
@ -59,6 +59,13 @@
dégradation majeure: oui
montant caution: 1200
valeur attendue: 0.10
- nom: imbrication nulle
valeur attendue: null
variables manquantes:
- dégradation mineure
- dégradation majeure
- montant caution
# pouvoir tester les variables inconnues mais requises ?