diff --git a/packages/twenty-shared/src/utils/filter/utils/__tests__/arrayOfStringsOrVariablesSchema.test.ts b/packages/twenty-shared/src/utils/filter/utils/__tests__/arrayOfStringsOrVariablesSchema.test.ts index bb646b3649c..8435fb2d103 100644 --- a/packages/twenty-shared/src/utils/filter/utils/__tests__/arrayOfStringsOrVariablesSchema.test.ts +++ b/packages/twenty-shared/src/utils/filter/utils/__tests__/arrayOfStringsOrVariablesSchema.test.ts @@ -61,6 +61,29 @@ describe('arrayOfStringsOrVariablesSchema', () => { }); }); + describe('Legacy plain string handling', () => { + it('should wrap plain string values in an array', () => { + const plainStrings = ['Privat', 'Work', 'some-option-value']; + + plainStrings.forEach((str) => { + const result = arrayOfStringsOrVariablesSchema.safeParse(str); + expect(result.success).toBe(true); + if (result.success) { + expect(result.data).toEqual([str]); + } + }); + }); + + it('should handle plain string with special characters', () => { + const result = + arrayOfStringsOrVariablesSchema.safeParse('Privat & Geschäftlich'); + expect(result.success).toBe(true); + if (result.success) { + expect(result.data).toEqual(['Privat & Geschäftlich']); + } + }); + }); + describe('Edge cases', () => { it('should handle whitespace in variable syntax', () => { const result = diff --git a/packages/twenty-shared/src/utils/filter/utils/validation-schemas/arrayOfStringsOrVariablesSchema.ts b/packages/twenty-shared/src/utils/filter/utils/validation-schemas/arrayOfStringsOrVariablesSchema.ts index 17690b44766..56c2515cf59 100644 --- a/packages/twenty-shared/src/utils/filter/utils/validation-schemas/arrayOfStringsOrVariablesSchema.ts +++ b/packages/twenty-shared/src/utils/filter/utils/validation-schemas/arrayOfStringsOrVariablesSchema.ts @@ -8,7 +8,11 @@ export const arrayOfStringsOrVariablesSchema = z if (isValidVariable(val) as boolean) { return [val]; } - return JSON.parse(val); + try { + return JSON.parse(val); + } catch { + return [val]; + } }) .refine( (parsed) =>