From d4833d3767d827cd25abfaf3d5eaf06c20c724c0 Mon Sep 17 00:00:00 2001 From: soupette Date: Tue, 19 May 2020 12:12:14 +0200 Subject: [PATCH] Fix username field Signed-off-by: soupette --- .../src/containers/ProfilePage/reducer.js | 2 ++ .../ProfilePage/tests/reducer.test.js | 25 +++++++++++++++++++ .../containers/ProfilePage/utils/schema.js | 2 +- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/packages/strapi-admin/admin/src/containers/ProfilePage/reducer.js b/packages/strapi-admin/admin/src/containers/ProfilePage/reducer.js index b5707eb898..0c0b69cccc 100644 --- a/packages/strapi-admin/admin/src/containers/ProfilePage/reducer.js +++ b/packages/strapi-admin/admin/src/containers/ProfilePage/reducer.js @@ -27,6 +27,8 @@ const reducer = (state, action) => case 'ON_CHANGE': { if (action.inputType === 'password' && !action.value) { unset(draftState.modifiedData, action.keys.split('.')); + } else if (action.keys.includes('username')) { + set(draftState.modifiedData, action.keys.split('.'), null); } else { set(draftState.modifiedData, action.keys.split('.'), action.value); } diff --git a/packages/strapi-admin/admin/src/containers/ProfilePage/tests/reducer.test.js b/packages/strapi-admin/admin/src/containers/ProfilePage/tests/reducer.test.js index d003f93aa6..6aded03d53 100644 --- a/packages/strapi-admin/admin/src/containers/ProfilePage/tests/reducer.test.js +++ b/packages/strapi-admin/admin/src/containers/ProfilePage/tests/reducer.test.js @@ -151,6 +151,31 @@ describe('ADMIN | CONTAINERS | ProfilePage | reducer', () => { expect(reducer(initialState, action)).toEqual(expected); }); + + it('should set the username value to null if the value is empty', () => { + const initialState = { + modifiedData: { + email: 'john@strapi.io', + password: 'pwd123', + username: 'test', + }, + }; + const action = { + type: 'ON_CHANGE', + keys: 'username', + inputType: 'text', + value: '', + }; + const expected = { + modifiedData: { + email: 'john@strapi.io', + password: 'pwd123', + username: null, + }, + }; + + expect(reducer(initialState, action)).toEqual(expected); + }); }); describe('ON_SUBMIT', () => { diff --git a/packages/strapi-admin/admin/src/containers/ProfilePage/utils/schema.js b/packages/strapi-admin/admin/src/containers/ProfilePage/utils/schema.js index 1cd6fbf4a5..46069d82df 100644 --- a/packages/strapi-admin/admin/src/containers/ProfilePage/utils/schema.js +++ b/packages/strapi-admin/admin/src/containers/ProfilePage/utils/schema.js @@ -8,7 +8,7 @@ const schema = yup.object().shape({ .string() .email(translatedErrors.email) .required(translatedErrors.required), - username: yup.string(), + username: yup.string().nullable(), password: yup .string() .min(8, translatedErrors.minLength)