From f84e421494210cdd028aa4651e92cfff64841ab7 Mon Sep 17 00:00:00 2001 From: Mael Date: Thu, 15 Feb 2018 18:12:04 +0100 Subject: [PATCH] Throw Errors, not strings Mocha webpack n'est pas tres sympa avec ces derniers --- source/engine/mecanisms.js | 14 +++++++++----- source/engine/rules.js | 2 +- source/engine/traverse.js | 8 ++++---- test/real-rules.test.js | 1 - 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/source/engine/mecanisms.js b/source/engine/mecanisms.js index d8827c0da..0e77c4ca1 100644 --- a/source/engine/mecanisms.js +++ b/source/engine/mecanisms.js @@ -194,7 +194,7 @@ let devariate = (recurse, k, v) => { } export let mecanismOneOf = (recurse, k, v) => { - if (!is(Array, v)) throw 'should be array' + if (!is(Array, v)) throw new Error('should be array') let explanation = map(recurse, v) @@ -238,7 +238,7 @@ export let mecanismOneOf = (recurse, k, v) => { } export let mecanismAllOf = (recurse, k, v) => { - if (!is(Array, v)) throw 'should be array' + if (!is(Array, v)) throw new Error('should be array') let explanation = map(recurse, v) @@ -287,7 +287,9 @@ export let mecanismNumericalSwitch = (recurse, k, v) => { if (is(String, v)) return recurse(v) if (!is(Object, v) || keys(v).length == 0) { - throw 'Le mécanisme "aiguillage numérique" et ses sous-logiques doivent contenir au moins une proposition' + throw new Error( + 'Le mécanisme "aiguillage numérique" et ses sous-logiques doivent contenir au moins une proposition' + ) } // les termes sont les couples (condition, conséquence) de l'aiguillage numérique @@ -399,7 +401,9 @@ export let mecanismNumericalSwitch = (recurse, k, v) => { export let findInversion = (situationGate, rules, v, dottedName) => { let inversions = v.avec if (!inversions) - throw "Une formule d'inversion doit préciser _avec_ quoi on peut inverser la variable" + throw new Error( + "Une formule d'inversion doit préciser _avec_ quoi on peut inverser la variable" + ) /* Quelle variable d'inversion possible a sa valeur renseignée dans la situation courante ? Ex. s'il nous est demandé de calculer le salaire de base, est-ce qu'un candidat à l'inversion, comme @@ -965,5 +969,5 @@ export let mecanismSelection = (recurse, k, v) => { } export let mecanismError = (recurse, k, v) => { - throw "Le mécanisme '" + k + "' est inconnu !" + v + throw new Error("Le mécanisme '" + k + "' est inconnu !" + v) } diff --git a/source/engine/rules.js b/source/engine/rules.js index bef1e18eb..892464c92 100644 --- a/source/engine/rules.js +++ b/source/engine/rules.js @@ -102,7 +102,7 @@ export let disambiguateRuleReference = ( return ( (found && found.dottedName) || do { - throw `OUUUUPS la référence '${partialName}' dans la règle '${name}' est introuvable dans la base` + throw new `OUUUUPS la référence '${partialName}' dans la règle '${name}' est introuvable dans la base`() } ) } diff --git a/source/engine/traverse.js b/source/engine/traverse.js index b9359c10b..616168f20 100644 --- a/source/engine/traverse.js +++ b/source/engine/traverse.js @@ -391,9 +391,9 @@ let treat = (rules, rule) => rawNode => { }, treatOther = rawNode => { console.log() // eslint-disable-line no-console - throw 'Cette donnée : ' + - rawNode + - ' doit être un Number, String ou Object' + throw new Error( + 'Cette donnée : ' + rawNode + ' doit être un Number, String ou Object' + ) }, treatObject = rawNode => { let mecanisms = intersection(keys(rawNode), keys(knownMecanisms)) @@ -405,7 +405,7 @@ let treat = (rules, rule) => rawNode => { mecanisms, rawNode ) - throw 'OUPS !' + throw new Error('OUPS !') } let k = head(mecanisms), diff --git a/test/real-rules.test.js b/test/real-rules.test.js index 391fd2ebf..b10d9f164 100644 --- a/test/real-rules.test.js +++ b/test/real-rules.test.js @@ -13,7 +13,6 @@ 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