From 671731771746a342d358751711dc0196ceddeffa Mon Sep 17 00:00:00 2001 From: Rimian Perkins Date: Tue, 4 Apr 2017 13:44:13 +1000 Subject: [PATCH] expect a username if an account is being created --- app/controllers/discourse_donations/charges_controller.rb | 6 ++++++ assets/javascripts/discourse/components/stripe-card.js.es6 | 2 ++ .../discourse_donations/charges_controller_spec.rb | 6 ++++++ 3 files changed, 14 insertions(+) diff --git a/app/controllers/discourse_donations/charges_controller.rb b/app/controllers/discourse_donations/charges_controller.rb index 375c625..df91aeb 100644 --- a/app/controllers/discourse_donations/charges_controller.rb +++ b/app/controllers/discourse_donations/charges_controller.rb @@ -9,6 +9,8 @@ module DiscourseDonations def create if email.nil? response = {'message' => 'Please enter your email address'} + elsif create_account && params[:username].nil? + response = {'message' => 'Please enter a username'} else Stripe.api_key = SiteSetting.discourse_donations_secret_key currency = SiteSetting.discourse_donations_currency @@ -33,6 +35,10 @@ module DiscourseDonations private + def create_account + params[:create_account] + end + def email params[:email] || current_user.try(:email) end diff --git a/assets/javascripts/discourse/components/stripe-card.js.es6 b/assets/javascripts/discourse/components/stripe-card.js.es6 index 4841207..ec65bdc 100644 --- a/assets/javascripts/discourse/components/stripe-card.js.es6 +++ b/assets/javascripts/discourse/components/stripe-card.js.es6 @@ -82,6 +82,8 @@ export default Ember.Component.extend({ stripeToken: data.token.id, amount: self.get('amount') * 100, email: self.get('email'), + username: self.get('username'), + create_account: this.get('create_accounts') }; if(!self.get('paymentSuccess')) { diff --git a/spec/controllers/discourse_donations/charges_controller_spec.rb b/spec/controllers/discourse_donations/charges_controller_spec.rb index 355327c..a6a73c1 100644 --- a/spec/controllers/discourse_donations/charges_controller_spec.rb +++ b/spec/controllers/discourse_donations/charges_controller_spec.rb @@ -22,6 +22,12 @@ module DiscourseDonations 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['message']).to eq('Please enter a username') + expect(response).to have_http_status(200) + end + it 'responds ok for logged in user' do current_user = log_in(:coding_horror) post :create