From 184e0e96611e1584d597ce4cc0c414c763a5289a Mon Sep 17 00:00:00 2001 From: desiprisg Date: Tue, 1 Apr 2025 14:20:55 +0300 Subject: [PATCH] fix(api,framework): Undefined variables parsing --- apps/api/src/app/shared/helpers/liquid.ts | 2 +- packages/framework/src/client.test.ts | 2 +- packages/framework/src/utils/liquid.utils.test.ts | 8 ++++---- packages/framework/src/utils/liquid.utils.ts | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/api/src/app/shared/helpers/liquid.ts b/apps/api/src/app/shared/helpers/liquid.ts index 959869897e2..9a73d44873f 100644 --- a/apps/api/src/app/shared/helpers/liquid.ts +++ b/apps/api/src/app/shared/helpers/liquid.ts @@ -20,6 +20,6 @@ const stringifyDataStructureWithSingleQuotes = (value: unknown, spaces: number = return valueEscapedNewLines; } else { - return String(value); + return value == null ? '' : String(value as unknown); } }; diff --git a/packages/framework/src/client.test.ts b/packages/framework/src/client.test.ts index 668b5f4b809..c610e922fa1 100644 --- a/packages/framework/src/client.test.ts +++ b/packages/framework/src/client.test.ts @@ -1051,7 +1051,7 @@ describe('Novu Client', () => { const emailExecutionResult = await client.executeWorkflow(event); expect(emailExecutionResult.outputs).toEqual({ - body: 'Hi undefined', + body: 'Hi ', subject: 'Test subject', }); }); diff --git a/packages/framework/src/utils/liquid.utils.test.ts b/packages/framework/src/utils/liquid.utils.test.ts index ae3e83ae992..ed13791d76e 100644 --- a/packages/framework/src/utils/liquid.utils.test.ts +++ b/packages/framework/src/utils/liquid.utils.test.ts @@ -293,7 +293,7 @@ describe('defaultOutputEscape', () => { expect(defaultOutputEscape(true)).toBe('true'); expect(defaultOutputEscape(false)).toBe('false'); expect(defaultOutputEscape(null)).toBe('null'); - expect(defaultOutputEscape(undefined)).toBe('undefined'); + expect(defaultOutputEscape(undefined)).toBe(''); }); }); @@ -342,15 +342,15 @@ describe('stringifyDataStructureWithSingleQuotes', () => { expect(converted).toStrictEqual('true'); }); - it('should convert null to a string without single quotes', () => { + it('should convert null to an empty string', () => { const myTestNull = null; const converted = stringifyDataStructureWithSingleQuotes(myTestNull); - expect(converted).toStrictEqual('null'); + expect(converted).toStrictEqual(''); }); it('should convert undefined to an empty string', () => { const myTestUndefined = undefined; const converted = stringifyDataStructureWithSingleQuotes(myTestUndefined); - expect(converted).toStrictEqual('undefined'); + expect(converted).toStrictEqual(''); }); }); diff --git a/packages/framework/src/utils/liquid.utils.ts b/packages/framework/src/utils/liquid.utils.ts index 0f6728ae991..ab442ca5984 100644 --- a/packages/framework/src/utils/liquid.utils.ts +++ b/packages/framework/src/utils/liquid.utils.ts @@ -16,7 +16,7 @@ export function defaultOutputEscape(output: unknown): string { else if (typeof output === 'string' && output.includes('\n')) { return output.replace(/\n/g, '\\n'); } else { - return String(output); + return output === undefined ? '' : String(output as unknown); } } @@ -34,7 +34,7 @@ export const stringifyDataStructureWithSingleQuotes = (value: unknown, spaces: n return valueEscapedNewLines; } else { - return String(value); + return value == null ? '' : String(value as unknown); } };