diff --git a/app/imports/api/engine/computation/computeComputation/computeCalculations.js b/app/imports/api/engine/computation/computeComputation/computeCalculations.js index 2b06135c..7cdeb18a 100644 --- a/app/imports/api/engine/computation/computeComputation/computeCalculations.js +++ b/app/imports/api/engine/computation/computeComputation/computeCalculations.js @@ -1,6 +1,7 @@ import { CompilationContext } from '/imports/parser/parser.js'; import INLINE_CALCULATION_REGEX from '/imports/constants/INLINE_CALCULTION_REGEX.js'; import ConstantNode from '/imports/parser/parseTree/ConstantNode.js'; +import ErrorNode from '/imports/parser/parseTree/ErrorNode.js'; export default function computeCalculations(computation, node){ if (!node.data) return; @@ -21,8 +22,10 @@ function evaluateCalculation(calculation, scope){ const resultNode = parseNode[fn](calculationScope, context); if (resultNode instanceof ConstantNode){ calculation.value = resultNode.value; + } else if (resultNode instanceof ErrorNode){ + calculation.value = null; } else { - calculation.value = NaN; + calculation.value = resultNode.toString(); } if (calculation.errors){ calculation.errors = [...calculation.errors, ...context.errors] diff --git a/app/imports/api/engine/computation/computeComputation/tests/computeAction.testFn.js b/app/imports/api/engine/computation/computeComputation/tests/computeAction.testFn.js index 6d6395ac..9b299c16 100644 --- a/app/imports/api/engine/computation/computeComputation/tests/computeAction.testFn.js +++ b/app/imports/api/engine/computation/computeComputation/tests/computeAction.testFn.js @@ -14,7 +14,7 @@ export default function(){ assert.equal(prop.usesLeft, 2); const rolled = computation.propsById['rolledDescriptionId']; - assert.equal(rolled.summary.value, 'test roll gets compiled {1d4 + 4} properly'); + assert.equal(rolled.summary.value, 'test roll gets compiled 1d4 + 4 properly'); const itemConsumed = prop.resources.itemsConsumed[0]; assert.equal(itemConsumed.quantity.value, 3); diff --git a/app/imports/api/engine/computation/computeComputation/tests/computeAttribute.testFn.js b/app/imports/api/engine/computation/computeComputation/tests/computeAttribute.testFn.js index 7cc0a32e..2a9e4f3c 100644 --- a/app/imports/api/engine/computation/computeComputation/tests/computeAttribute.testFn.js +++ b/app/imports/api/engine/computation/computeComputation/tests/computeAttribute.testFn.js @@ -17,6 +17,10 @@ export default function(){ prop('parseErrorId').baseValue.errors.length, 1, 'Parse errors should be added to calculation errors' ); + assert.equal( + prop('parseErrorId').baseValue.value, null, + 'Parse errors should null the value' + ); } var testProperties = [