diff --git a/app/lib/database/utils.test.ts b/app/lib/database/utils.test.ts index 3c914112c13..9ccc06a28f8 100644 --- a/app/lib/database/utils.test.ts +++ b/app/lib/database/utils.test.ts @@ -69,4 +69,10 @@ describe('slugifyLikeString', () => { const textSlugified = 'tesuto123'; expect(utils.slugifyLikeString(textToSlugify)).toBe(textSlugified); }); + test('slugify with special characters - should sanitize before slugifying', () => { + // Special characters should be replaced with '_' before slugifying + expect(utils.slugifyLikeString('test@#$123')).toBe('test___123'); + expect(utils.slugifyLikeString('hello.world!')).toBe('hello_world_'); + expect(utils.slugifyLikeString('user-name_123')).toBe('user_name_123'); + }); }); diff --git a/app/lib/database/utils.ts b/app/lib/database/utils.ts index 8bc2df1946b..5e7d6107476 100644 --- a/app/lib/database/utils.ts +++ b/app/lib/database/utils.ts @@ -11,8 +11,8 @@ export const sanitizeLikeString = (str?: string): string | undefined => str?.rep // slugifyLikeString('ใƒ†ใ‚นใƒˆ123') => 'tesuto123' export const slugifyLikeString = (str?: string) => { if (!str) return ''; - str?.replace(likeStringRegex, '_'); - const slugified = slugify(str); + const sanitized = str.replace(likeStringRegex, '_'); + const slugified = slugify(sanitized); return slugified; };