From c4f3824dae8bae20bbce5c71504158f387fc8ab2 Mon Sep 17 00:00:00 2001 From: Dima Alipov Date: Tue, 23 Apr 2024 15:41:57 +0300 Subject: [PATCH] fix: adding value length check for full name field --- .../NameField/NameField.test.jsx | 19 +++++++++++++++++++ .../RegistrationFields/NameField/validator.js | 2 ++ src/register/messages.jsx | 5 +++++ 3 files changed, 26 insertions(+) diff --git a/src/register/RegistrationFields/NameField/NameField.test.jsx b/src/register/RegistrationFields/NameField/NameField.test.jsx index 3d33467229..ac77b844e8 100644 --- a/src/register/RegistrationFields/NameField/NameField.test.jsx +++ b/src/register/RegistrationFields/NameField/NameField.test.jsx @@ -94,6 +94,25 @@ describe('NameField', () => { ); }); + it('should check for long full name error', () => { + const longName = ` + 5cnx16mn7qTSbtiha1W473ZtV5prGBCEtNrfLkqizJirf + v5kbzBpLRbdh7FY5qujb8viQ9zPziE1fWnbFu5tj4FXaY5GDESvVwjQkE + txUPE3r9mk4HYcSfXVJPWAWRuK2LJZycZWDm0BMFLZ63YdyQAZhjyvjn7 + SCqKjSHDx7mgwFp35PF4CxwtwNLxY11eqf5F88wQ9k2JQ9U8uKSFyTKCM + A456CGA5KjUugYdT1qKdvvnXtaQr8WA87m9jpe16 + `; + const { container } = render(routerWrapper(reduxWrapper())); + const nameInput = container.querySelector('input#name'); + fireEvent.blur(nameInput, { target: { value: longName, name: 'name' } }); + + expect(props.handleErrorChange).toHaveBeenCalledTimes(1); + expect(props.handleErrorChange).toHaveBeenCalledWith( + 'name', + 'Full name can not be longer than 255 symbols', + ); + }); + it('should clear error on focus', () => { const { container } = render(routerWrapper(reduxWrapper())); diff --git a/src/register/RegistrationFields/NameField/validator.js b/src/register/RegistrationFields/NameField/validator.js index aefaedfb3f..fce71cd593 100644 --- a/src/register/RegistrationFields/NameField/validator.js +++ b/src/register/RegistrationFields/NameField/validator.js @@ -15,6 +15,8 @@ const validateName = (value, formatMessage) => { fieldError = formatMessage(messages['empty.name.field.error']); } else if (URL_REGEX.test(value) || HTML_REGEX.test(value) || INVALID_NAME_REGEX.test(value)) { fieldError = formatMessage(messages['name.validation.message']); + } else if (value && value.length > 255) { + fieldError = formatMessage(messages['name.validation.length.message']); } return fieldError; }; diff --git a/src/register/messages.jsx b/src/register/messages.jsx index 39d9e7f549..c3953ebb1e 100644 --- a/src/register/messages.jsx +++ b/src/register/messages.jsx @@ -126,6 +126,11 @@ const messages = defineMessages({ defaultMessage: 'Enter a valid name', description: 'Validation message that appears when fullname contain URL', }, + 'name.validation.length.message': { + id: 'name.validation.message', + defaultMessage: 'Full name can not be longer than 255 symbols', + description: 'Validation message that appears when fullname contain URL', + }, 'password.validation.message': { id: 'password.validation.message', defaultMessage: 'Password criteria has not been met',