From 4fe5a0462ac2bf2c3dd5864413ba4d206809b6e8 Mon Sep 17 00:00:00 2001 From: Rimian Perkins Date: Thu, 4 May 2017 19:49:30 +1000 Subject: [PATCH] disallows reserved usernames --- .../discourse_donations/charges_controller.rb | 2 ++ .../charges_controller_spec.rb | 29 ++++++++++++------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/app/controllers/discourse_donations/charges_controller.rb b/app/controllers/discourse_donations/charges_controller.rb index 201a63e..4450283 100644 --- a/app/controllers/discourse_donations/charges_controller.rb +++ b/app/controllers/discourse_donations/charges_controller.rb @@ -15,6 +15,8 @@ module DiscourseDonations end if params[:username].nil? output['messages'] << 'Please enter a username' + elsif ::User.reserved_username?(params[:username]) + output['messages'] << I18n.t('login.reserved_username') end end diff --git a/spec/controllers/discourse_donations/charges_controller_spec.rb b/spec/controllers/discourse_donations/charges_controller_spec.rb index 72e5320..11d721d 100644 --- a/spec/controllers/discourse_donations/charges_controller_spec.rb +++ b/spec/controllers/discourse_donations/charges_controller_spec.rb @@ -18,17 +18,6 @@ module DiscourseDonations expect(response).to have_http_status(200) end - it 'responds with a message when the email is empty' do - post :create, { create_account: 'true', email: '' } - expect(body['messages']).to include('Please enter your email address') - end - - it 'responds ok when the email is empty' do - post :create, { create_account: 'true' } - expect(body['messages']).to include('Please enter your email address') - expect(response).to have_http_status(200) - end - it 'expects a username if accounts are being created' do post :create, { email: 'zipitydoodah@example.com', create_account: 'true' } expect(body['messages']).to include('Please enter a username') @@ -42,6 +31,24 @@ module DiscourseDonations expect(response).to have_http_status(200) end + describe 'new user' do + it 'has a message when the email is empty' do + post :create, { create_account: 'true', email: '' } + expect(body['messages']).to include('Please enter your email address') + end + + it 'has a message when the email is empty' do + post :create, { create_account: 'true' } + expect(body['messages']).to include('Please enter your email address') + end + + it 'has a message when the username is reserved' do + User.expects(:reserved_username?).returns(true) + post :create, { username: 'admin', create_account: 'true', email: 'something@example.com' } + expect(body['messages']).to include(I18n.t('login.reserved_username')) + end + end + describe 'rewards' do let(:group_name) { 'Zasch' } let(:badge_name) { 'Beanie' }