From cfe04fd4e3c9870a60c90eafd43a119de262ce8a Mon Sep 17 00:00:00 2001 From: Rimian Perkins Date: Thu, 27 Apr 2017 11:58:52 +1000 Subject: [PATCH] initial tests for new user account --- .../discourse_donations/charges_controller.rb | 2 +- .../charges_controller_spec.rb | 44 +++++++++++++------ 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/app/controllers/discourse_donations/charges_controller.rb b/app/controllers/discourse_donations/charges_controller.rb index 333c6b4..27433f9 100644 --- a/app/controllers/discourse_donations/charges_controller.rb +++ b/app/controllers/discourse_donations/charges_controller.rb @@ -32,7 +32,7 @@ module DiscourseDonations private def reward_user?(payment) - payment.present? && payment.successful? && current_user.present? + payment.present? && payment.successful? end def group_name diff --git a/spec/controllers/discourse_donations/charges_controller_spec.rb b/spec/controllers/discourse_donations/charges_controller_spec.rb index 7ac9c98..809513c 100644 --- a/spec/controllers/discourse_donations/charges_controller_spec.rb +++ b/spec/controllers/discourse_donations/charges_controller_spec.rb @@ -36,25 +36,43 @@ module DiscourseDonations before do SiteSetting.stubs(:discourse_donations_reward_group_name).returns(group_name) SiteSetting.stubs(:discourse_donations_reward_badge_name).returns(badge_name) - Fabricate(:group, name: SiteSetting.discourse_donations_reward_group_name) - Fabricate(:badge, name: SiteSetting.discourse_donations_reward_badge_name) - log_in :coding_horror + Fabricate(:group, name: group_name) + Fabricate(:badge, name: badge_name) end - it 'has no rewards' do - stripe.expects(:create).returns({ outcome: { seller_message: 'bummer' } }) - post :create - expect(response_rewards).to be_empty + shared_examples 'it has no rewards' do + it 'rewards are empty' do + stripe.expects(:create).returns({ outcome: { seller_message: 'bummer' } }) + post :create + expect(response_rewards).to be_empty + end end - it 'awards a group' do - post :create - expect(response_rewards).to include({'type' => 'group', 'name' => group_name}) + describe 'new user' do + let(:params) { { email: 'new-user@example.com' } } + + it_behaves_like 'it has no rewards' + + it 'awards a group' + it 'awards a badge' end - it 'awards a badge' do - post :create - expect(response_rewards).to include({'type' => 'badge', 'name' => badge_name}) + describe 'logged in user' do + before do + log_in :coding_horror + end + + it_behaves_like 'it has no rewards' + + it 'awards a group' do + post :create + expect(response_rewards).to include({'type' => 'group', 'name' => group_name}) + end + + it 'awards a badge' do + post :create + expect(response_rewards).to include({'type' => 'badge', 'name' => badge_name}) + end end end end