discourse-subscriptions/spec/controllers/discourse_donations/charges_controller_spec.rb

53 lines
1.6 KiB
Ruby
Raw Normal View History

require 'rails_helper'
2017-03-19 21:08:30 -04:00
require_relative '../../support/dd_helper'
2017-02-23 21:23:11 -05:00
module DiscourseDonations
RSpec.describe ChargesController, type: :controller do
2017-02-23 21:23:11 -05:00
routes { DiscourseDonations::Engine.routes }
2017-03-19 21:08:30 -04:00
before do
SiteSetting.stubs(:discourse_donations_secret_key).returns('secret-key-yo')
2017-04-06 00:22:22 -04:00
SiteSetting.stubs(:discourse_donations_description).returns('charity begins at discourse plugin')
SiteSetting.stubs(:discourse_donations_currency).returns('AUD')
2017-03-19 21:08:30 -04:00
end
it 'responds ok for anonymous users' do
post :create, { email: 'foobar@example.com' }
expect(response).to have_http_status(200)
end
it 'responds ok when the email is empty' do
2017-04-04 19:49:57 -04:00
post :create, { email: '' }
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(response).to have_http_status(200)
end
2017-04-20 22:08:52 -04:00
2017-04-21 00:26:53 -04:00
describe 'rewards' do
before do
SiteSetting.stubs(:discourse_donations_reward_group).returns('Skimby')
Fabricate(:group, name: SiteSetting.discourse_donations_reward_group)
log_in :coding_horror
end
let(:response_rewards) { JSON.parse(response.body)['rewards'] }
let(:stripe) { ::Stripe::Charge }
it 'has no rewards' do
stripe.expects(:create).returns({ bummer: true })
post :create
expect(response_rewards).to eq({})
end
it 'awards a group' do
post :create
expect(response_rewards['groups']).to eq([SiteSetting.discourse_donations_reward_group])
end
2017-04-20 22:08:52 -04:00
end
end
end