From 3fa6130f2381d8afd96b2a795f4cf6f574f8b363 Mon Sep 17 00:00:00 2001 From: Rimian Perkins Date: Tue, 4 Apr 2017 13:10:31 +1000 Subject: [PATCH] normalise the message in the response --- app/controllers/discourse_donations/charges_controller.rb | 6 +++--- assets/javascripts/discourse/components/stripe-card.js.es6 | 2 +- .../discourse_donations/charges_controller_spec.rb | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/controllers/discourse_donations/charges_controller.rb b/app/controllers/discourse_donations/charges_controller.rb index 308747b..375c625 100644 --- a/app/controllers/discourse_donations/charges_controller.rb +++ b/app/controllers/discourse_donations/charges_controller.rb @@ -8,9 +8,7 @@ module DiscourseDonations def create if email.nil? - response = { - - } + response = {'message' => 'Please enter your email address'} else Stripe.api_key = SiteSetting.discourse_donations_secret_key currency = SiteSetting.discourse_donations_currency @@ -26,6 +24,8 @@ module DiscourseDonations :description => SiteSetting.discourse_donations_description, :currency => currency ) + + response['message'] = response['outcome']['seller_message'] end render :json => response diff --git a/assets/javascripts/discourse/components/stripe-card.js.es6 b/assets/javascripts/discourse/components/stripe-card.js.es6 index bd96acb..0efd136 100644 --- a/assets/javascripts/discourse/components/stripe-card.js.es6 +++ b/assets/javascripts/discourse/components/stripe-card.js.es6 @@ -87,7 +87,7 @@ export default Ember.Component.extend({ if(!self.get('paymentSuccess')) { ajax('/charges', { data: params, method: 'post' }).then(data => { - self.set('result', data.outcome.seller_message); + self.set('result', data.message); if(!this.get('create_accounts')) { if(data.status == 'succeeded') { this.setSuccess() }; diff --git a/spec/controllers/discourse_donations/charges_controller_spec.rb b/spec/controllers/discourse_donations/charges_controller_spec.rb index 13b51d4..355327c 100644 --- a/spec/controllers/discourse_donations/charges_controller_spec.rb +++ b/spec/controllers/discourse_donations/charges_controller_spec.rb @@ -4,6 +4,7 @@ require_relative '../../support/dd_helper' module DiscourseDonations RSpec.describe ChargesController, type: :controller do routes { DiscourseDonations::Engine.routes } + let(:body) { JSON.parse(response.body) } before do SiteSetting.stubs(:discourse_donations_secret_key).returns('secret-key-yo') @@ -11,17 +12,20 @@ module DiscourseDonations it 'responds ok for anonymous users' do post :create, { email: 'foobar@example.com' } + expect(body['message']).to eq(body['outcome']['seller_message']) expect(response).to have_http_status(200) end it 'responds ok when the email is empty' do post :create, { } + expect(body['message']).to eq('Please enter your email address') expect(response).to have_http_status(200) end it 'responds ok for logged in user' do current_user = log_in(:coding_horror) post :create + expect(body['message']).to eq(body['outcome']['seller_message']) expect(response).to have_http_status(200) end end