diff --git a/app/controllers/discourse_donations/charges_controller.rb b/app/controllers/discourse_donations/charges_controller.rb index 8cf51f2..4e6912b 100644 --- a/app/controllers/discourse_donations/charges_controller.rb +++ b/app/controllers/discourse_donations/charges_controller.rb @@ -7,7 +7,7 @@ module DiscourseDonations skip_before_filter :verify_authenticity_token, only: [:create] def create - if email.nil? || email.empty? + if create_account && (email.nil? || email.empty?) response = {'message' => 'Please enter your email address'} elsif create_account && params[:username].nil? response = {'message' => 'Please enter a username'} @@ -36,7 +36,7 @@ module DiscourseDonations private def create_account - params[:create_account] + params[:create_account] == 'true' end def email diff --git a/spec/controllers/discourse_donations/charges_controller_spec.rb b/spec/controllers/discourse_donations/charges_controller_spec.rb index 2153aed..678199f 100644 --- a/spec/controllers/discourse_donations/charges_controller_spec.rb +++ b/spec/controllers/discourse_donations/charges_controller_spec.rb @@ -23,7 +23,7 @@ module DiscourseDonations end it 'responds ok when the email is empty' do - post :create, { create_account: 'false' } + post :create, { create_account: 'true' } expect(body['message']).to eq('Please enter your email address') expect(response).to have_http_status(200) end @@ -34,10 +34,10 @@ module DiscourseDonations expect(response).to have_http_status(200) end - it 'responds ok for logged in user' do + it 'does not expect a username or email if accounts are not being created' do current_user = log_in(:coding_horror) - post :create - expect(body['message']).to eq(body['outcome']['seller_message']) + post :create, { create_account: 'false' } + expect(body['message']).to eq('Payment complete.') expect(response).to have_http_status(200) end end