Possibilité de tester les variables manquantes dans les tests meca
parent
5012d4f718
commit
d35ae49274
|
@ -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')
|
||||
});
|
||||
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
||||
})
|
||||
)
|
||||
))
|
||||
|
|
|
@ -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 ?
|
||||
|
|
Loading…
Reference in New Issue