@@ -134,9 +134,16 @@ describe('RegistrationPage', () => {
134134 jest . clearAllMocks ( ) ;
135135 } ) ;
136136
137- const populateRequiredFields = ( getByLabelText , payload , isThirdPartyAuth = false ) => {
137+ const populateRequiredFields = (
138+ getByLabelText ,
139+ payload ,
140+ isThirdPartyAuth = false ,
141+ autoGeneratedUsernameEnabled = false ,
142+ ) => {
138143 fireEvent . change ( getByLabelText ( 'Full name' ) , { target : { value : payload . name , name : 'name' } } ) ;
139- fireEvent . change ( getByLabelText ( 'Public username' ) , { target : { value : payload . username , name : 'username' } } ) ;
144+ if ( ! autoGeneratedUsernameEnabled ) {
145+ fireEvent . change ( getByLabelText ( 'Public username' ) , { target : { value : payload . username , name : 'username' } } ) ;
146+ }
140147 fireEvent . change ( getByLabelText ( 'Email' ) , { target : { value : payload . email , name : 'email' } } ) ;
141148
142149 fireEvent . change ( getByLabelText ( 'Country/Region' ) , { target : { value : payload . country , name : 'country' } } ) ;
@@ -299,6 +306,44 @@ describe('RegistrationPage', () => {
299306 } ) ;
300307 } ) ;
301308
309+ it ( 'should submit form without UsernameField when autoGeneratedUsernameEnabled is true' , ( ) => {
310+ mergeConfig ( {
311+ ENABLE_AUTO_GENERATED_USERNAME : true ,
312+ } ) ;
313+ jest . spyOn ( global . Date , 'now' ) . mockImplementation ( ( ) => 0 ) ;
314+ const payload = {
315+ name : 'John Doe' ,
316+ email : 'john.doe@gmail.com' ,
317+ password : 'password1' ,
318+ country : 'Pakistan' ,
319+ honor_code : true ,
320+ totalRegistrationTime : 0 ,
321+ } ;
322+
323+ store . dispatch = jest . fn ( store . dispatch ) ;
324+ const { getByLabelText, container } = render ( routerWrapper ( reduxWrapper ( < IntlRegistrationPage { ...props } /> ) ) ) ;
325+ populateRequiredFields ( getByLabelText , payload , false , true ) ;
326+ const button = container . querySelector ( 'button.btn-brand' ) ;
327+ fireEvent . click ( button ) ;
328+ expect ( store . dispatch ) . toHaveBeenCalledWith ( registerNewUser ( { ...payload , country : 'PK' } ) ) ;
329+ mergeConfig ( {
330+ ENABLE_AUTO_GENERATED_USERNAME : false ,
331+ } ) ;
332+ } ) ;
333+
334+ it ( 'should not display UsernameField when ENABLE_AUTO_GENERATED_USERNAME is true' , ( ) => {
335+ mergeConfig ( {
336+ ENABLE_AUTO_GENERATED_USERNAME : true ,
337+ } ) ;
338+
339+ const { queryByLabelText } = render ( routerWrapper ( reduxWrapper ( < IntlRegistrationPage { ...props } /> ) ) ) ;
340+ expect ( queryByLabelText ( 'Username' ) ) . toBeNull ( ) ;
341+
342+ mergeConfig ( {
343+ ENABLE_AUTO_GENERATED_USERNAME : false ,
344+ } ) ;
345+ } ) ;
346+
302347 it ( 'should not dispatch registerNewUser on empty form Submission' , ( ) => {
303348 store . dispatch = jest . fn ( store . dispatch ) ;
304349
0 commit comments