From 1718125c6d8589cf24dc8d34f6808dd6f1802691 Mon Sep 17 00:00:00 2001 From: Michael Kret <88898367+michael-radency@users.noreply.github.com> Date: Fri, 26 Jul 2024 20:04:55 +0300 Subject: [PATCH] fix: Better error message when calling data transformation functions on a null value (#10210) --- packages/workflow/src/Extensions/utils.ts | 10 +++------- .../ExpressionExtensions/ExpressionExtension.test.ts | 7 ++----- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/packages/workflow/src/Extensions/utils.ts b/packages/workflow/src/Extensions/utils.ts index a144116dea64a..e56d37a691bfc 100644 --- a/packages/workflow/src/Extensions/utils.ts +++ b/packages/workflow/src/Extensions/utils.ts @@ -21,12 +21,8 @@ export const convertToDateTime = (value: string | Date | DateTime): DateTime | u export function checkIfValueDefinedOrThrow(value: T, functionName: string): void { if (value === undefined || value === null) { - throw new ExpressionExtensionError( - `${functionName}() could not be called on "${String(value)}" type`, - { - description: - 'You are trying to access a field that does not exist, modify your expression or set a default value', - }, - ); + throw new ExpressionExtensionError(`${functionName} can't be used on ${String(value)} value`, { + description: `To ignore this error, add a ? to the variable before this function, e.g. my_var?.${functionName}`, + }); } } diff --git a/packages/workflow/test/ExpressionExtensions/ExpressionExtension.test.ts b/packages/workflow/test/ExpressionExtensions/ExpressionExtension.test.ts index a255de40068d0..b35cd2c7289ad 100644 --- a/packages/workflow/test/ExpressionExtensions/ExpressionExtension.test.ts +++ b/packages/workflow/test/ExpressionExtensions/ExpressionExtension.test.ts @@ -250,10 +250,7 @@ describe('tmpl Expression Parser', () => { extend(undefined, 'toDateTime', []); } catch (error) { expect(error).toBeInstanceOf(ExpressionExtensionError); - expect(error).toHaveProperty( - 'message', - 'toDateTime() could not be called on "undefined" type', - ); + expect(error).toHaveProperty('message', "toDateTime can't be used on undefined value"); } }); test('input is null', () => { @@ -261,7 +258,7 @@ describe('tmpl Expression Parser', () => { extend(null, 'startsWith', []); } catch (error) { expect(error).toBeInstanceOf(ExpressionExtensionError); - expect(error).toHaveProperty('message', 'startsWith() could not be called on "null" type'); + expect(error).toHaveProperty('message', "startsWith can't be used on null value"); } }); test('input should be converted to upper case', () => {