From f49e4e2ec3a50cb13bf0190dbe3a3ad0885e3d42 Mon Sep 17 00:00:00 2001 From: Tobias Linsefors Date: Tue, 21 Mar 2023 15:03:45 +0100 Subject: [PATCH] fix: wrap in square brackets if needed (#1171) --- .../listbox/utils/__tests__/frequencyMaxUtil.test.jsx | 9 +++++++++ .../src/components/listbox/utils/frequencyMaxUtil.js | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 apis/nucleus/src/components/listbox/utils/__tests__/frequencyMaxUtil.test.jsx diff --git a/apis/nucleus/src/components/listbox/utils/__tests__/frequencyMaxUtil.test.jsx b/apis/nucleus/src/components/listbox/utils/__tests__/frequencyMaxUtil.test.jsx new file mode 100644 index 000000000..13b783c48 --- /dev/null +++ b/apis/nucleus/src/components/listbox/utils/__tests__/frequencyMaxUtil.test.jsx @@ -0,0 +1,9 @@ +import { getFrequencyMaxExpression } from '../frequencyMaxUtil'; + +describe('frequencyMaxUtil - getFrequencyMaxExpression', () => { + test('should create correct expression and wrap and escape field if needed', async () => { + const result = getFrequencyMaxExpression('dimension with ] in it'); + + expect(result).toEqual('Max(AGGR(Count([dimension with ]] in it]), [dimension with ]] in it]))'); + }); +}); diff --git a/apis/nucleus/src/components/listbox/utils/frequencyMaxUtil.js b/apis/nucleus/src/components/listbox/utils/frequencyMaxUtil.js index e8d449974..d98b8b364 100644 --- a/apis/nucleus/src/components/listbox/utils/frequencyMaxUtil.js +++ b/apis/nucleus/src/components/listbox/utils/frequencyMaxUtil.js @@ -2,7 +2,10 @@ const escapeField = (field) => { if (!field) { return field; } - return `${field.replace(/\]/g, ']]')}`; + if (/^[A-Za-z][A-Za-z0-9_]*$/.test(field)) { + return field; + } + return `[${field.replace(/\]/g, ']]')}]`; }; export const needToFetchFrequencyMax = (layout) => layout?.frequencyMax === 'fetch';