neocities/tests/acceptance/admin_tests.rb
2015-06-28 21:41:08 -07:00

54 lines
1.2 KiB
Ruby

require_relative './environment.rb'
describe '/admin' do
include Capybara::DSL
before do
Capybara.reset_sessions!
@admin = Fabricate :site, is_admin: true
@site = Fabricate :site
page.set_rack_session id: @admin.id
visit '/admin'
end
describe 'permissions' do
include Capybara::DSL
it 'works for admin site' do
page.body.must_match /Administration/
end
it 'fails for site without admin' do
page.set_rack_session id: @site.id
visit '/admin'
page.current_path.must_equal '/'
end
end
describe 'supporter upgrade' do
include Capybara::DSL
before do
@stripe_helper = StripeMock.create_test_helper
StripeMock.start
@plan = @stripe_helper.create_plan id: 'special', amount: 0
end
after do
StripeMock.stop
end
it 'works for valid site' do
within(:css, '#upgradeToSupporter') do
fill_in 'username', with: @site.username
click_button 'Upgrade to Supporter'
@site.reload
@site.stripe_customer_id.wont_be_nil
@site.stripe_subscription_id.wont_be_nil
@site.values[:plan_type].must_equal 'special'
@site.supporter?.must_equal true
end
end
end
end