Test : pas de variables d'entrée sans défaut

pull/138/head
mama 2017-11-20 17:25:08 +01:00
parent 74e1aacab9
commit 7955ec1580
2 changed files with 50 additions and 25 deletions

View File

@ -26,9 +26,10 @@ export let enrichRule = (rule, sharedData = {}) => {
name
].join(' . ') : name,
subquestionMarkdown = rule['sous-question'],
subquestion = subquestionMarkdown && marked(subquestionMarkdown)
subquestion = subquestionMarkdown && marked(subquestionMarkdown),
defaultValue = rule['par défaut']
return {...rule, type, name, title, ns, data, dottedName, subquestion}
return {...rule, type, name, title, ns, data, dottedName, subquestion, defaultValue}
}
export let hasKnownRuleType = rule => rule && enrichRule(rule).type

View File

@ -1,31 +1,55 @@
import R from 'ramda'
import {expect} from 'chai'
import {rules, enrichRule, findVariantsAndRecords} from '../source/engine/rules'
import R from "ramda"
import { expect } from "chai"
import {
rules,
enrichRule,
findVariantsAndRecords
} from "../source/engine/rules"
let stateSelector = (state, name) => null
describe('enrichRule', function() {
describe("enrichRule", function() {
it("should extract the type of the rule", function() {
let rule = { nom: "retraite", cotisation: {} }
expect(enrichRule(rule)).to.have.property("type", "cotisation")
})
it('should extract the type of the rule', function() {
let rule = {nom: 'retraite', cotisation:{}}
expect(enrichRule(rule)).to.have.property('type','cotisation')
});
it("should load external data into the rule", function() {
let data = { taux_versement_transport: { one: "two" } }
let rule = {
nom: "retraite",
cotisation: {},
données: "taux_versement_transport"
}
expect(enrichRule(rule, data)).to.have.deep.property("data", { one: "two" })
})
it('should load external data into the rule', function() {
let data = {taux_versement_transport: {one: "two"}}
let rule = {nom: 'retraite', cotisation:{}, données: 'taux_versement_transport'}
expect(enrichRule(rule, data)).to.have.deep.property('data',{one: "two"})
});
it("should extract the dotted name of the rule", function() {
let rule = { espace: "contrat salarié", nom: "CDD" }
expect(enrichRule(rule)).to.have.property("name", "CDD")
expect(enrichRule(rule)).to.have.property(
"dottedName",
"contrat salarié . CDD"
)
})
it('should extract the dotted name of the rule', function() {
let rule = {espace:"contrat salarié", nom: "CDD"}
expect(enrichRule(rule)).to.have.property('name','CDD')
expect(enrichRule(rule)).to.have.property('dottedName','contrat salarié . CDD')
});
it("should render Markdown in sub-questions", function() {
let rule = { nom: "quoi", "sous-question": "**wut**" }
expect(enrichRule(rule)).to.have.property(
"subquestion",
"<p><strong>wut</strong></p>\n"
)
})
})
it('should render Markdown in sub-questions', function() {
let rule = {nom: 'quoi', "sous-question":"**wut**"}
expect(enrichRule(rule)).to.have.property('subquestion','<p><strong>wut</strong></p>\n')
});
describe("rule checks", function() {
it("most input rules should have defaults", function() {
let rulesNeedingDefault = rules.filter(
r =>
r.espace && !r.simulateur && (!r.formule || r.formule["une possibilité"]) && r.defaultValue == null
)
});
rulesNeedingDefault.map(r => console.log('yo', r.dottedName))
expect(rulesNeedingDefault).to.be.empty
})
})