mirror of
https://github.com/discourse/discourse-subscriptions.git
synced 2025-07-08 15:22:46 +00:00
refactor the rewards interface for extensibility
This commit is contained in:
parent
23b909dc48
commit
1c87a87bd6
@ -14,13 +14,13 @@ module DiscourseDonations
|
|||||||
response = {}
|
response = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
response['rewards'] = {}
|
response['rewards'] = []
|
||||||
|
|
||||||
if reward_user?(payment)
|
if reward_user?(payment)
|
||||||
reward = DiscourseDonations::Rewards.new(current_user)
|
reward = DiscourseDonations::Rewards.new(current_user)
|
||||||
group_name = SiteSetting.discourse_donations_reward_group_name
|
group_name = SiteSetting.discourse_donations_reward_group_name
|
||||||
if reward.add_to_group(group_name)
|
if reward.add_to_group(group_name)
|
||||||
response['rewards']['groups'] = [group_name]
|
response['rewards'] << { type: :group, name: group_name }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -28,24 +28,25 @@ module DiscourseDonations
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe 'rewards' do
|
describe 'rewards' do
|
||||||
|
let(:group_name) { 'Zasch' }
|
||||||
|
let(:response_rewards) { JSON.parse(response.body)['rewards'] }
|
||||||
|
let(:stripe) { ::Stripe::Charge }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
SiteSetting.stubs(:discourse_donations_reward_group_name).returns('Skimby')
|
SiteSetting.stubs(:discourse_donations_reward_group_name).returns(group_name)
|
||||||
Fabricate(:group, name: SiteSetting.discourse_donations_reward_group_name)
|
Fabricate(:group, name: SiteSetting.discourse_donations_reward_group_name)
|
||||||
log_in :coding_horror
|
log_in :coding_horror
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:response_rewards) { JSON.parse(response.body)['rewards'] }
|
|
||||||
let(:stripe) { ::Stripe::Charge }
|
|
||||||
|
|
||||||
it 'has no rewards' do
|
it 'has no rewards' do
|
||||||
stripe.expects(:create).returns({ outcome: { seller_message: 'bummer' } })
|
stripe.expects(:create).returns({ outcome: { seller_message: 'bummer' } })
|
||||||
post :create
|
post :create
|
||||||
expect(response_rewards).to eq({})
|
expect(response_rewards).to be_empty
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'awards a group' do
|
it 'awards a group' do
|
||||||
post :create
|
post :create
|
||||||
expect(response_rewards['groups']).to eq([SiteSetting.discourse_donations_reward_group_name])
|
expect(response_rewards.first).to eq({'type' => 'group', 'name' => group_name})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user