diff --git a/web/client/utils/TemplateUtils.js b/web/client/utils/TemplateUtils.js index 4320ad428d..daefc6845b 100644 --- a/web/client/utils/TemplateUtils.js +++ b/web/client/utils/TemplateUtils.js @@ -67,7 +67,7 @@ export const generateTemplateString = (function() { .replace(/\$\{([\s]*[^;\s\{]+[\s]*)\}/g, (_, match) => { const escapeFunction = escapeFn || (a => a); return escapeFunction(match.trim().split(".").reduce((a, b) => { - return a && a[b]; + return a && a[b] || ''; }, map)); }); diff --git a/web/client/utils/__tests__/TemplateUtils-test.js b/web/client/utils/__tests__/TemplateUtils-test.js index 68c9699922..8dd3d991b4 100644 --- a/web/client/utils/__tests__/TemplateUtils-test.js +++ b/web/client/utils/__tests__/TemplateUtils-test.js @@ -50,6 +50,12 @@ describe('TemplateUtils', () => { let templateResult = templateFunction({test: "TEST"}); expect(templateResult).toBe("this is a TEST2"); }); + it('generateTemplateString with some null or undefined attributes', () => { + let templateFunction = generateTemplateString("#${desc}, ${desc1}, ${desc2}#"); + expect(templateFunction).toExist(); + let templateResult = templateFunction({desc: "desc value", desc1: null, desc2: undefined}); + expect(templateResult).toEqual("#desc value, , #"); + }); it('validateStringAttribute', () => { const testObj = {