Fixing issues discovered with hbs escaping.
This commit is contained in:
parent
01bd23f45e
commit
a7ce3ada3f
|
@ -1,13 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<html>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
{{{head}}}
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
window["##BUDIBASE_APP_ID##"] = "{{appId}}"
|
|
||||||
</script>
|
|
||||||
|
|
||||||
{{{body}}}
|
|
||||||
</html>
|
|
|
@ -20,10 +20,13 @@ const HELPERS = [
|
||||||
// this help is applied to all statements
|
// this help is applied to all statements
|
||||||
new Helper(HelperFunctionNames.ALL, value => {
|
new Helper(HelperFunctionNames.ALL, value => {
|
||||||
// null/undefined values produce bad results
|
// null/undefined values produce bad results
|
||||||
if (value == null) {
|
if (value == null || typeof value !== "string") {
|
||||||
return ""
|
return value || ""
|
||||||
}
|
}
|
||||||
let text = new SafeString(unescape(value).replace(/&/g, "&"))
|
if (value && value.string) {
|
||||||
|
value = value.string
|
||||||
|
}
|
||||||
|
let text = new SafeString(value.replace(/&/g, "&"))
|
||||||
if (text == null || typeof text !== "string") {
|
if (text == null || typeof text !== "string") {
|
||||||
return text
|
return text
|
||||||
}
|
}
|
||||||
|
|
|
@ -442,4 +442,15 @@ describe("Cover a few complex use cases", () => {
|
||||||
const output = await processObject(input, tableJson)
|
const output = await processObject(input, tableJson)
|
||||||
expect(output.dataProvider).not.toBe("Invalid Binding")
|
expect(output.dataProvider).not.toBe("Invalid Binding")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("should be able to handle external ids", async () => {
|
||||||
|
const input = {
|
||||||
|
dataProvider: "{{ literal [_id] }}",
|
||||||
|
}
|
||||||
|
const context = {
|
||||||
|
_id: "%5B%221%22%2C%221%22%5D",
|
||||||
|
}
|
||||||
|
const output = await processObject(input, context)
|
||||||
|
expect(output.dataProvider).toBe("%5B%221%22%2C%221%22%5D")
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue