mirror of
https://github.com/neocities/neocities.git
synced 2025-04-25 01:32:36 +02:00
initial implementation of stripe mocking
This commit is contained in:
parent
af2c4eea26
commit
81c9a4c94c
4 changed files with 77 additions and 10 deletions
17
Gemfile
17
Gemfile
|
@ -56,17 +56,18 @@ end
|
|||
|
||||
group :test do
|
||||
gem 'faker'
|
||||
gem 'fabrication', require: 'fabrication'
|
||||
gem 'fabrication', require: 'fabrication'
|
||||
gem 'minitest'
|
||||
gem 'minitest-reporters', require: 'minitest/reporters'
|
||||
gem 'rack-test', require: 'rack/test'
|
||||
gem 'mocha', require: nil
|
||||
gem 'rake', require: nil
|
||||
gem 'minitest-reporters', require: 'minitest/reporters'
|
||||
gem 'rack-test', require: 'rack/test'
|
||||
gem 'mocha', require: nil
|
||||
gem 'rake', require: nil
|
||||
gem 'poltergeist'
|
||||
gem 'phantomjs', require: 'phantomjs/poltergeist'
|
||||
gem 'phantomjs', require: 'phantomjs/poltergeist'
|
||||
gem 'capybara_minitest_spec'
|
||||
gem 'rack_session_access', require: nil
|
||||
gem 'webmock', require: nil
|
||||
gem 'rack_session_access', require: nil
|
||||
gem 'webmock', require: nil
|
||||
gem 'stripe-ruby-mock', '~> 2.0.1', require: 'stripe_mock'
|
||||
|
||||
platform :mri do
|
||||
gem 'simplecov', require: nil
|
||||
|
|
12
Gemfile.lock
12
Gemfile.lock
|
@ -16,6 +16,7 @@ GEM
|
|||
extlib (>= 0.9.15)
|
||||
multi_json (>= 1.0.0)
|
||||
bcrypt (3.1.7)
|
||||
blankslate (3.1.3)
|
||||
builder (3.2.2)
|
||||
byebug (2.7.0)
|
||||
columnize (~> 0.3)
|
||||
|
@ -41,6 +42,7 @@ GEM
|
|||
connection_pool (2.0.0)
|
||||
crack (0.4.2)
|
||||
safe_yaml (~> 1.0.0)
|
||||
dante (0.2.0)
|
||||
dav4rack (0.3.0)
|
||||
nokogiri (>= 1.4.2)
|
||||
rack (>= 1.1.0)
|
||||
|
@ -73,6 +75,11 @@ GEM
|
|||
hashie (2.0.5)
|
||||
hiredis (0.5.0)
|
||||
i18n (0.6.9)
|
||||
jimson-temp (0.9.5)
|
||||
blankslate (>= 3.1.2)
|
||||
multi_json (~> 1.0)
|
||||
rack (~> 1.4)
|
||||
rest-client (~> 1.0)
|
||||
json (1.8.1)
|
||||
jwt (0.1.11)
|
||||
multi_json (>= 1.5)
|
||||
|
@ -189,6 +196,10 @@ GEM
|
|||
json (~> 1.8.1)
|
||||
mime-types (>= 1.25, < 3.0)
|
||||
rest-client (~> 1.4)
|
||||
stripe-ruby-mock (2.0.1)
|
||||
dante (>= 0.2.0)
|
||||
jimson-temp
|
||||
stripe (>= 1.15.0)
|
||||
thread (0.1.4)
|
||||
thread_safe (0.3.4)
|
||||
tilt (1.4.1)
|
||||
|
@ -261,6 +272,7 @@ DEPENDENCIES
|
|||
sinatra-flash
|
||||
sinatra-xsendfile
|
||||
stripe
|
||||
stripe-ruby-mock (~> 2.0.1)
|
||||
thread
|
||||
tilt
|
||||
webmock
|
||||
|
|
54
tests/acceptance/admin_tests.rb
Normal file
54
tests/acceptance/admin_tests.rb
Normal file
|
@ -0,0 +1,54 @@
|
|||
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
|
|
@ -52,13 +52,13 @@
|
|||
|
||||
<div class="col col-50">
|
||||
<h2>Upgrade to Supporter</h2>
|
||||
<form action="/plan/update" method="POST">
|
||||
<form id="upgradeToSupporter" action="/plan/update" method="POST">
|
||||
<input type="hidden" name="plan_type" value="special">
|
||||
<%== csrf_token_input_html %>
|
||||
<p>This site will be upgraded to the supporter plan.</p>
|
||||
<p>Site Name:</p>
|
||||
<p><input type="text" name="username" placeholder="edwardsnowden" autocapitalize="off" autocorrect="off"></p>
|
||||
<p><input class="btn btn-Action" type="submit" value="Ban"></p>
|
||||
<p><input class="btn btn-Action" type="submit" value="Upgrade to Supporter"></p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Reference in a new issue