From 0a97f05c58ff31bba80ad44af381a771f00da234 Mon Sep 17 00:00:00 2001 From: juancarmore Date: Tue, 30 Sep 2025 12:17:32 +0200 Subject: [PATCH] backend: update theme name validation to allow uppercase letters --- .../request-validators/room-validator.middleware.ts | 2 +- .../integration/api/global-config/appearance.test.ts | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/backend/src/middlewares/request-validators/room-validator.middleware.ts b/backend/src/middlewares/request-validators/room-validator.middleware.ts index 60f7eb7..b32b478 100644 --- a/backend/src/middlewares/request-validators/room-validator.middleware.ts +++ b/backend/src/middlewares/request-validators/room-validator.middleware.ts @@ -99,7 +99,7 @@ const RoomThemeSchema = z.object({ .string() .min(1, 'Theme name cannot be empty') .max(50, 'Theme name cannot exceed 50 characters') - .regex(/^[a-z0-9_-]+$/, 'Theme name can only contain lowercase letters, numbers, hyphens and underscores'), + .regex(/^[a-zA-Z0-9_-]+$/, 'Theme name can only contain letters, numbers, hyphens and underscores'), enabled: z.boolean(), baseTheme: ThemeModeSchema, backgroundColor: hexColorSchema.optional(), diff --git a/backend/tests/integration/api/global-config/appearance.test.ts b/backend/tests/integration/api/global-config/appearance.test.ts index 0f709c0..f0149db 100644 --- a/backend/tests/integration/api/global-config/appearance.test.ts +++ b/backend/tests/integration/api/global-config/appearance.test.ts @@ -182,12 +182,9 @@ describe('Rooms Appearance Config API Tests', () => { it('should reject when theme name has invalid characters', async () => { const invalidNames = [ - 'Corporate Blue', // Uppercase and spaces - 'dark-mode-2024!', // Exclamation mark - 'theme.corporate', // Dot - 'Dark_Mode', // Uppercase - 'theme 1', // Space - 'thème-français' // Accents + 'Corporate Blue', // Spaces + 'dark-mode.2024!', // Special characters + 'thème_français' // Accents ]; for (const name of invalidNames) { @@ -206,7 +203,7 @@ describe('Rooms Appearance Config API Tests', () => { expectValidationError( response, 'appearance.themes.0.name', - 'Theme name can only contain lowercase letters, numbers, hyphens and underscores' + 'Theme name can only contain letters, numbers, hyphens and underscores' ); } });