neocities/tests/acceptance/supporter_tests.rb
2022-08-10 14:31:36 -05:00

52 lines
1.6 KiB
Ruby

require_relative './environment.rb'
describe '/supporter' do
include Capybara::DSL
before do
Capybara.default_driver = :apparition
Capybara.reset_sessions!
@site = Fabricate :site
@stripe_helper = StripeMock.create_test_helper
StripeMock.start
@stripe_helper.create_product(id: 'supporter', name: 'Supporter')
@stripe_helper.create_plan product: 'supporter', amount: 500
page.set_rack_session id: @site.id
EmailWorker.jobs.clear
Mail::TestMailer.deliveries.clear
end
after do
StripeMock.stop
Capybara.default_driver = :rack_test
end
it 'should work for paypal' do
end
it 'should work for fresh signup' do
visit '/supporter'
find('.cc-number input[type=text]').set '4242424242424242'
all('.cc-exp input[type=text]').first.set '01'
all('.cc-exp input[type=text]').last.set Date.today.next_year.year.to_s[2..3]
find('.cc-name').set 'Penelope'
all('.flip-tab').first.click
find('.cc-cvc').set '123'
page.evaluate_script("document.getElementById('stripe_token').value = '#{@stripe_helper.generate_card_token}'")
click_link 'Upgrade for $5/mo'
_(page.current_path).must_equal '/supporter/thanks'
all('.txt-Center')
_(page.body).must_match /You have become a Neocities Supporter/
@site.reload
_(@site.stripe_customer_id).wont_be_nil
_(@site.stripe_subscription_id).wont_be_nil
_(@site.values[:plan_type]).must_equal 'supporter'
_(@site.supporter?).must_equal true
EmailWorker.drain
mail = Mail::TestMailer.deliveries.first
_(mail.subject).must_match "You've become a supporter"
end
end