From 5376e3a3ea5d3c2ad060bb25ff2ced43c22e9daf Mon Sep 17 00:00:00 2001 From: karilint Date: Thu, 4 Jun 2026 16:00:26 +0300 Subject: [PATCH] Fix generated password validation --- backend/src/unit-tests/validatePassword.test.ts | 4 ++++ backend/src/utils/validatePassword.ts | 2 +- frontend/src/hooks/usePasswordValidation.ts | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/src/unit-tests/validatePassword.test.ts b/backend/src/unit-tests/validatePassword.test.ts index d0b1c41df..9de6333e3 100644 --- a/backend/src/unit-tests/validatePassword.test.ts +++ b/backend/src/unit-tests/validatePassword.test.ts @@ -8,6 +8,10 @@ describe('Password validation utils', () => { it('Accepts correct password with symbols', () => { expect(validatePassword('thisisav~!%ali&dpas$sword').isValid).toBeTruthy() }) + it('Accepts generated password symbols', () => { + expect(validatePassword('valid^password').isValid).toBeTruthy() + expect(validatePassword('valid?password').isValid).toBeTruthy() + }) it('Rejects invalid password with unsupported symbols in the middle', () => { expect(validatePassword('thisisav~%a€li&dpas$sword').isValid).toBeFalsy() }) diff --git a/backend/src/utils/validatePassword.ts b/backend/src/utils/validatePassword.ts index 281c89d02..0b47bbc63 100644 --- a/backend/src/utils/validatePassword.ts +++ b/backend/src/utils/validatePassword.ts @@ -5,7 +5,7 @@ export interface PasswordValidationResult { export const validatePassword = (password: string): PasswordValidationResult => { if (password.length < 8) return { isValid: false, error: 'Password must be at least 8 characters long' } - if (!/^[0-9A-Za-z$%&~!]+$/.test(password)) + if (!/^[0-9A-Za-z^?$%&~!]+$/.test(password)) return { isValid: false, error: 'Password must only contain characters a-z, A-Z, 0-9 and ^?$%&~!', diff --git a/frontend/src/hooks/usePasswordValidation.ts b/frontend/src/hooks/usePasswordValidation.ts index 201b98f8b..1e00eb3e6 100644 --- a/frontend/src/hooks/usePasswordValidation.ts +++ b/frontend/src/hooks/usePasswordValidation.ts @@ -19,7 +19,7 @@ export const usePasswordValidation = () => { return { isValid: false, error: requirements[0] } } - if (!/^[0-9A-Za-z$%&~!]+$/.test(password)) { + if (!/^[0-9A-Za-z^?$%&~!]+$/.test(password)) { return { isValid: false, error: requirements[1] } }