💚 répare les tests

pull/894/head
Johan Girod 2020-02-21 16:39:54 +01:00
parent bfac041bf2
commit 599212b378
6 changed files with 24 additions and 91 deletions

View File

@ -44,15 +44,18 @@ export let evaluateNode = (cache, situationGate, parsedRules, node) => {
}
const sameUnitValues = (explanation, contextRule, mecanismName) => {
const firstNodeWithUnit = explanation.find(node => !!node.unit)
if (!firstNodeWithUnit) {
return [undefined, explanation.map(({ nodeValue }) => nodeValue)]
}
const values = explanation.map(node => {
try {
return convertNodeToUnit(firstNodeWithUnit.unit, node).nodeValue
return convertNodeToUnit(firstNodeWithUnit?.unit, node).nodeValue
} catch (e) {
typeWarning(
contextRule,
`Dans le mécanisme ${mecanismName}, les unités des éléments suivants sont incompatibles entre elles : \n\t\t${node.name ||
node.rawNode}\n\t\t${firstNodeWithUnit.name ||
firstNodeWithUnit.rawNode}'`,
`Dans le mécanisme ${mecanismName}, les unités des éléments suivants sont incompatibles entre elles : \n\t\t${node?.name ||
node?.rawNode}\n\t\t${firstNodeWithUnit?.name ||
firstNodeWithUnit?.rawNode}'`,
e
)
return node.nodeValue

View File

@ -7,7 +7,7 @@ const colors = {
'toutes ces conditions': '#3498db',
composantes: '#3498db',
variations: '#FF9800',
complément: '#795548',
'taux progressif': '#795548',
barème: '#607D8B',
grille: '#AD1457'
}

View File

@ -328,7 +328,7 @@ contrat salarié . CDD . contrat jeune vacances:
description.fr: >-
Aussi appelé CDD vendanges. Contrat conclu avec un jeune pendant ses
vacances scolaires ou universitaires.
note.en: '[automatic] That''s not a reason for a fixed-term contract.'
note.en: "[automatic] That's not a reason for a fixed-term contract."
note.fr: Ce n'est pas un motif de CDD.
question.en: Is it a young holiday contract?
question.fr: Est-ce un contrat jeune vacances ?
@ -706,7 +706,7 @@ contrat salarié . aides employeur:
France. Découvrez-les sur le [portail
officiel](http://www.aides-entreprises.fr).
résumé.en: Deferred aids available to the employer.
résumé.fr: 'Pour l''employeur, différées dans le temps'
résumé.fr: "Pour l'employeur, différées dans le temps"
titre.en: deferred employer aids
titre.fr: aides à l'embauche
contrat salarié . aides employeur . aide à l'embauche d'apprentis:
@ -798,7 +798,7 @@ contrat salarié . apprentissage . diplôme préparé . niveau supérieur au bac
titre.fr: Diplôme d'un niveau supérieur au bac
contrat salarié . assiette CSG et CRDS:
note.en: '[automatic] This plate is complex, this version is only a simplification.'
note.fr: 'Cette assiette est complexe, cette version n''est qu''une simplification.'
note.fr: "Cette assiette est complexe, cette version n'est qu'une simplification."
titre.en: CSG and CRDS base
titre.fr: assiette CSG et CRDS
contrat salarié . assiette CSG et CRDS . assiette abattue:
@ -993,12 +993,12 @@ contrat salarié . convention collective:
Néanmoins, cela permet d'obtenir une première estimation, plus précise
que le régime général.
question.en: 'Which "convention collective" is applicable to the company ? [beta] '
question.fr: 'Quelle convention collective est applicable à l''entreprise ? [beta] '
question.fr: "Quelle convention collective est applicable à l'entreprise ? [beta] "
titre.en: convention collective
titre.fr: convention collective
contrat salarié . convention collective . HCR:
description.en: 'The company is a hotel, café, restaurant or similar.'
description.fr: 'L''entreprise est un hôtel, café, restaurant ou assimilé.'
description.fr: "L'entreprise est un hôtel, café, restaurant ou assimilé."
titre.en: 'hotels, cafés restaurants HCR (beta)'
titre.fr: 'hôtels, cafés restaurants HCR (beta)'
contrat salarié . convention collective . HCR . majoration heures supplémentaires:
@ -1566,7 +1566,7 @@ contrat salarié . frais professionnels . titres-restaurant . taux participation
description.fr: >-
Part du titre-restaurant payée par l'employeur. Doit être de 50% minimum et
de 60% maximum.
question.en: '[automatic] What is the employer''s paid portion?'
question.en: "[automatic] What is the employer's paid portion?"
question.fr: Quelle est la participation de l'employeur ?
suggestions.50%.en: '[automatic] 50%'
suggestions.50%.fr: 50%
@ -1972,7 +1972,7 @@ contrat salarié . réduction générale . assiette:
titre.fr: Assiette de la réduction générale
contrat salarié . réduction générale . assiette . part de la cotisation ATMP:
note.en: '[automatic] In practice, the ATMP is always higher than 0.78%.'
note.fr: 'En pratique, l''ATMP est toujours supérieure à 0.78%'
note.fr: "En pratique, l'ATMP est toujours supérieure à 0.78%"
titre.en: share of ATMP contribution
titre.fr: part de la cotisation ATMP
contrat salarié . réduction générale . multiplicateur:
@ -3692,7 +3692,7 @@ dirigeant . rattachement CIPAV:
note.en: >-
[automatic] for the time being, we have only retained the CIPAV for the
calculations.
note.fr: 'pour l''instant, nous n''avons retenu que la CIPAV pour les calculs'
note.fr: "pour l'instant, nous n'avons retenu que la CIPAV pour les calculs"
titre.en: CIPAV attachment
titre.fr: rattachement CIPAV
dirigeant . rattachement CIPAV . retraite complémentaire:
@ -4022,7 +4022,7 @@ entreprise . catégorie d'activité . restauration ou hébergement:
titre.fr: restauration ou hébergement
entreprise . catégorie d'activité . service ou vente:
question.en: 'Is it a service activity, or the purchase and sale of goods?'
question.fr: 'Est-ce une activité de prestation de service, ou de l''achat-vente de biens ?'
question.fr: "Est-ce une activité de prestation de service, ou de l'achat-vente de biens ?"
titre.en: service or sale
titre.fr: service ou vente
entreprise . catégorie d'activité . service ou vente . service:
@ -4141,7 +4141,7 @@ entreprise . chiffre d'affaires minimum:
titre.en: Minimum turnover
titre.fr: chiffre d'affaires minimum
entreprise . date de création:
contrôles.0.en: '[automatic] We can''t see that far into the future'
contrôles.0.en: "[automatic] We can't see that far into the future"
contrôles.0.fr: Nous ne pouvons voir aussi loin dans le futur
contrôles.1.en: >-
[automatic] This is a very old company! Are you sure you didn't make a
@ -4358,7 +4358,7 @@ entreprise . établissement bancaire:
L'entreprise est un établissement bancaire, financier ou d'assurance. Elle
est non assujettie à la TVA.
question.en: 'Is it a banking, financial or insurance institution?'
question.fr: 'S''agit-il d''un établissement bancaire, financier, d''assurance ?'
question.fr: "S'agit-il d'un établissement bancaire, financier, d'assurance ?"
titre.en: banking institution
titre.fr: établissement bancaire
impôt:

View File

@ -18,8 +18,8 @@ describe('conversation', function() {
{ nom: 'top . startHere', formule: { somme: ['a', 'b'] } },
{ nom: 'top . a', formule: 'aa' },
{ nom: 'top . b', formule: 'bb' },
{ nom: 'top . aa', question: '?', titre: 'a' },
{ nom: 'top . bb', question: '?', titre: 'b' }
{ nom: 'top . aa', question: '?', titre: 'a', unité: '€' },
{ nom: 'top . bb', question: '?', titre: 'b', unité: '€' }
],
rules = rawRules.map(enrichRule),
state = merge(baseState, {
@ -40,9 +40,9 @@ describe('conversation', function() {
{ nom: 'top . a', formule: 'aa' },
{ nom: 'top . b', formule: 'bb' },
{ nom: 'top . c', formule: 'cc' },
{ nom: 'top . aa', question: '?', titre: 'a' },
{ nom: 'top . bb', question: '?', titre: 'b' },
{ nom: 'top . cc', question: '?', titre: 'c' }
{ nom: 'top . aa', question: '?', titre: 'a', unité: '€' },
{ nom: 'top . bb', question: '?', titre: 'b', unité: '€' },
{ nom: 'top . cc', question: '?', titre: 'c', unité: '€' }
],
rules = rawRules.map(enrichRule)

View File

@ -1,35 +0,0 @@
ma cotisation:
unité:
Complément:
formule:
complément:
cible: ma cotisation
montant: 100
exemples:
- nom:
situation:
ma cotisation: 33
valeur attendue: 67
autre cotisation:
unité:
Complément à composantes:
formule:
complément:
composantes:
- nom: A
cible: ma cotisation
montant: 100
- nom: B
cible: autre cotisation
montant: 200
exemples:
- nom:
situation:
ma cotisation: 33
autre cotisation: 133
valeur attendue: 134

View File

@ -294,41 +294,6 @@ describe('analyse with mecanisms', function() {
).to.have.property('nodeValue', 3200)
})
it('should handle complements', function() {
let rawRules = [
{ nom: 'top' },
{
nom: 'top . startHere',
formule: { complément: { cible: 'dix', montant: 93 } }
},
{ nom: 'top . dix', formule: 17 }
],
rules = parseAll(rawRules.map(enrichRule))
expect(
analyse(rules, 'startHere')(stateSelector).targets[0]
).to.have.property('nodeValue', 93 - 17)
})
it('should handle components in complements', function() {
let rawRules = [
{ nom: 'top' },
{
nom: 'top . startHere',
formule: {
complément: {
cible: 'dix',
composantes: [{ montant: 93 }, { montant: 93 }]
}
}
},
{ nom: 'top . dix', formule: 17 }
],
rules = parseAll(rawRules.map(enrichRule))
expect(
analyse(rules, 'startHere')(stateSelector).targets[0]
).to.have.property('nodeValue', 2 * (93 - 17))
})
it('should handle filtering on components', function() {
let rawRules = [
{ nom: 'top' },