35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
/*
|
|
Les mécanismes sont testés dans mécanismes/ comme le sont les variables directement dans la base YAML.
|
|
On y créée dans chaque fichier une base YAML autonome, dans laquelle intervient le mécanisme à tester,
|
|
puis on teste idéalement tous ses comportements sans en faire intervenir d'autres.
|
|
*/
|
|
|
|
import { expect, AssertionError } from "chai"
|
|
import { enrichRule, rules } from "../source/engine/rules"
|
|
import { analyse, parseAll } from "../source/engine/traverse"
|
|
import { collectMissingVariables } from "../source/engine/generateQuestions"
|
|
import testSuites from "./load-mecanism-tests"
|
|
import R from "ramda"
|
|
import { runExamples, isFloat } from "../source/components/rule/Examples"
|
|
|
|
|
|
let parsedRules = parseAll(rules)
|
|
|
|
|
|
describe("Tests des règles de notre base de règles", () =>
|
|
parsedRules.map(rule => {
|
|
if (!rule.exemples) return null
|
|
describe(rule.name, () => {
|
|
let examples = runExamples(rule.exemples, rule, parsedRules)
|
|
examples.map(example =>
|
|
it(example.nom + "", () => {
|
|
if (!example.ok)
|
|
throw new AssertionError(`
|
|
Valeur attendue : ${example['valeur attendue']}
|
|
Valeur obtenue : ${example.rule.nodeValue}
|
|
`)
|
|
})
|
|
)
|
|
})
|
|
}))
|