mon-entreprise/test/rules.test.js

59 lines
1.5 KiB
JavaScript

import R from 'ramda'
import { expect } from 'chai'
import {
rules,
enrichRule,
findVariantsAndRecords
} from '../source/engine/rules'
let stateSelector = (state, name) => null
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 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 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
})
})