Widening the allowance criteria for handlebars validity, check for any errors which suggest a simple type error from the context and allowing these through.

This commit is contained in:
Michael Drury 2021-02-02 20:28:27 +00:00
parent 8dbc102c6c
commit 8d40cb6b32
2 changed files with 7 additions and 2 deletions

View File

@ -110,7 +110,7 @@ module.exports.makePropSafe = property => {
* @returns {boolean} Whether or not the input string is valid.
*/
module.exports.isValid = string => {
const specialCases = ["isNumber", "expected a number"]
const specialCases = ["string", "number", "object", "array"]
// don't really need a real context to check if its valid
const context = {}
try {
@ -118,7 +118,7 @@ module.exports.isValid = string => {
return true
} catch (err) {
const msg = err ? err.message : ""
const foundCase = specialCases.find(spCase => msg.includes(spCase))
const foundCase = specialCases.find(spCase => msg.toLowerCase().includes(spCase))
// special case for maths functions - don't have inputs yet
return !!foundCase
}

View File

@ -311,4 +311,9 @@ describe("Cover a few complex use cases", () => {
const output = await processString(`{{first ( split "a-b-c" "-") 2}}`, {})
expect(output).toBe(`a,b`)
})
it("should confirm a subtraction validity", () => {
const validity = isValid("{{ subtract [c390c23a7f1b6441c98d2fe2a51248ef3].[total profit] [c390c23a7f1b6441c98d2fe2a51248ef3].[total revenue] }}")
expect(validity).toBe(true)
})
})