stripe-rails 1.9.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +10 -6
- data/Changelog.md +26 -0
- data/Gemfile +4 -4
- data/README.md +19 -2
- data/gemfiles/{rails4.gemfile → rails51.gemfile} +6 -5
- data/gemfiles/rails52.gemfile +20 -0
- data/lib/generators/templates/products.rb +2 -2
- data/lib/stripe/billing_tier.rb +34 -0
- data/lib/stripe/callbacks.rb +3 -4
- data/lib/stripe/plans.rb +33 -5
- data/lib/stripe/products.rb +2 -0
- data/lib/stripe/rails.rb +1 -0
- data/lib/stripe/rails/version.rb +1 -1
- data/stripe-rails.gemspec +2 -2
- data/test/callbacks_spec.rb +15 -15
- data/test/coupon_builder_spec.rb +4 -4
- data/test/dummy/config/stripe/plans.rb +21 -0
- data/test/dummy_apis_controller_spec.rb +1 -1
- data/test/events_controller_spec.rb +5 -5
- data/test/javascript_helper_spec.rb +12 -12
- data/test/plan_builder_spec.rb +112 -36
- data/test/product_builder_spec.rb +11 -11
- data/test/stripe_initializers_spec.rb +23 -23
- data/test/support/application_system_test_case.rb +2 -7
- data/test/testing_spec.rb +8 -8
- metadata +13 -17
- data/app/controllers/stripe/pings_controller.rb +0 -10
- data/app/models/stripe/ping.rb +0 -9
- data/test/pings_controller_spec.rb +0 -18
- data/test/support/null_system_test_case.rb +0 -11
@@ -15,16 +15,16 @@ describe 'building products' do
|
|
15
15
|
after { Stripe::Products.send(:remove_const, :PRIMO) }
|
16
16
|
|
17
17
|
it 'is accessible via id' do
|
18
|
-
Stripe::Products::PRIMO.wont_be_nil
|
18
|
+
_(Stripe::Products::PRIMO).wont_be_nil
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'is accessible via collection' do
|
22
|
-
Stripe::Products.all.must_include Stripe::Products::PRIMO
|
22
|
+
_(Stripe::Products.all).must_include Stripe::Products::PRIMO
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'is accessible via hash lookup (symbol/string agnostic)' do
|
26
|
-
Stripe::Products[:primo].must_equal Stripe::Products::PRIMO
|
27
|
-
Stripe::Products['primo'].must_equal Stripe::Products::PRIMO
|
26
|
+
_(Stripe::Products[:primo]).must_equal Stripe::Products::PRIMO
|
27
|
+
_(Stripe::Products['primo']).must_equal Stripe::Products::PRIMO
|
28
28
|
end
|
29
29
|
|
30
30
|
describe '.put!' do
|
@@ -63,42 +63,42 @@ describe 'building products' do
|
|
63
63
|
describe 'validations' do
|
64
64
|
describe 'with missing mandatory values' do
|
65
65
|
it 'raises an exception after configuring it' do
|
66
|
-
lambda { Stripe.product(:bad){} }.must_raise Stripe::InvalidConfigurationError
|
66
|
+
_(lambda { Stripe.product(:bad){} }).must_raise Stripe::InvalidConfigurationError
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
70
|
describe 'invalid type' do
|
71
71
|
it 'raises an exception during configuration' do
|
72
|
-
lambda {
|
72
|
+
_(lambda {
|
73
73
|
Stripe.product :broken do |product|
|
74
74
|
product.name = 'Acme as a service BROKEN'
|
75
75
|
product.type = 'anything'
|
76
76
|
end
|
77
|
-
}.must_raise Stripe::InvalidConfigurationError
|
77
|
+
}).must_raise Stripe::InvalidConfigurationError
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
81
|
describe 'when using an attribute only for goods' do
|
82
82
|
it 'raises an exception during configuration' do
|
83
|
-
lambda {
|
83
|
+
_(lambda {
|
84
84
|
Stripe.product :broken do |product|
|
85
85
|
product.name = 'Broken Service'
|
86
86
|
product.type = 'service'
|
87
87
|
product.caption = 'So good it is Primo'
|
88
88
|
end
|
89
|
-
}.must_raise Stripe::InvalidConfigurationError
|
89
|
+
}).must_raise Stripe::InvalidConfigurationError
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
93
|
describe 'when using an attribute only for services' do
|
94
94
|
it 'raises an exception during configuration' do
|
95
|
-
lambda {
|
95
|
+
_(lambda {
|
96
96
|
Stripe.product :broken do |product|
|
97
97
|
product.name = 'Broken Good'
|
98
98
|
product.type = 'good'
|
99
99
|
product.statement_descriptor = 'SERVICE'
|
100
100
|
end
|
101
|
-
}.must_raise Stripe::InvalidConfigurationError
|
101
|
+
}).must_raise Stripe::InvalidConfigurationError
|
102
102
|
end
|
103
103
|
end
|
104
104
|
end
|
@@ -19,16 +19,16 @@ describe "Configuring the stripe engine" do
|
|
19
19
|
|
20
20
|
describe 'Stripe configurations' do
|
21
21
|
it "will have valid default values" do
|
22
|
-
Stripe.api_base.must_equal 'https://api.stripe.com'
|
23
|
-
Stripe.api_key.must_equal 'XYZ'
|
24
|
-
Stripe.api_version.must_be_nil
|
25
|
-
Stripe.verify_ssl_certs.must_equal true
|
26
|
-
Stripe.open_timeout.must_equal 30
|
27
|
-
Stripe.read_timeout.must_equal 80
|
28
|
-
|
29
|
-
app.config.stripe.endpoint.must_equal '/stripe'
|
30
|
-
app.config.stripe.auto_mount.must_equal true
|
31
|
-
app.config.stripe.debug_js.must_equal false
|
22
|
+
_(Stripe.api_base).must_equal 'https://api.stripe.com'
|
23
|
+
_(Stripe.api_key).must_equal 'XYZ'
|
24
|
+
_(Stripe.api_version).must_be_nil
|
25
|
+
_(Stripe.verify_ssl_certs).must_equal true
|
26
|
+
_(Stripe.open_timeout).must_equal 30
|
27
|
+
_(Stripe.read_timeout).must_equal 80
|
28
|
+
|
29
|
+
_(app.config.stripe.endpoint).must_equal '/stripe'
|
30
|
+
_(app.config.stripe.auto_mount).must_equal true
|
31
|
+
_(app.config.stripe.debug_js).must_equal false
|
32
32
|
end
|
33
33
|
|
34
34
|
subject do
|
@@ -45,15 +45,15 @@ describe "Configuring the stripe engine" do
|
|
45
45
|
it "reads values that is set in the environment" do
|
46
46
|
subject
|
47
47
|
|
48
|
-
Stripe.api_base.must_equal 'http://localhost:5000'
|
49
|
-
Stripe.api_key.must_equal 'SECRET_XYZ'
|
50
|
-
Stripe.verify_ssl_certs.must_equal false
|
51
|
-
Stripe.api_version.must_equal '2015-10-16'
|
52
|
-
Stripe.open_timeout.must_equal 33
|
53
|
-
Stripe.read_timeout.must_equal 88
|
48
|
+
_(Stripe.api_base).must_equal 'http://localhost:5000'
|
49
|
+
_(Stripe.api_key).must_equal 'SECRET_XYZ'
|
50
|
+
_(Stripe.verify_ssl_certs).must_equal false
|
51
|
+
_(Stripe.api_version).must_equal '2015-10-16'
|
52
|
+
_(Stripe.open_timeout).must_equal 33
|
53
|
+
_(Stripe.read_timeout).must_equal 88
|
54
54
|
|
55
|
-
app.config.stripe.signing_secret.must_equal 'SIGNING_SECRET_XYZ'
|
56
|
-
app.config.stripe.signing_secrets.length.must_equal 1
|
55
|
+
_(app.config.stripe.signing_secret).must_equal 'SIGNING_SECRET_XYZ'
|
56
|
+
_(app.config.stripe.signing_secrets.length).must_equal 1
|
57
57
|
end
|
58
58
|
|
59
59
|
it "supports multiple signing secrets" do
|
@@ -62,8 +62,8 @@ describe "Configuring the stripe engine" do
|
|
62
62
|
app.config.stripe.signing_secrets = ['SIGNING_SECRET_XYZ', 'SIGNING_SECRET_XYZ_CONNECT']
|
63
63
|
rerun_initializers!
|
64
64
|
|
65
|
-
app.config.stripe.signing_secret.must_equal 'SIGNING_SECRET_XYZ'
|
66
|
-
app.config.stripe.signing_secrets.length.must_equal 2
|
65
|
+
_(app.config.stripe.signing_secret).must_equal 'SIGNING_SECRET_XYZ'
|
66
|
+
_(app.config.stripe.signing_secrets.length).must_equal 2
|
67
67
|
end
|
68
68
|
|
69
69
|
end
|
@@ -77,8 +77,8 @@ describe "Configuring the stripe engine" do
|
|
77
77
|
it 'should be eager loaded' do
|
78
78
|
subject
|
79
79
|
|
80
|
-
Dummy.const_defined?(:ModelWithCallbacks).must_equal true
|
81
|
-
Dummy.const_defined?(:ModuleWithCallbacks).must_equal true
|
80
|
+
_(Dummy.const_defined?(:ModelWithCallbacks)).must_equal true
|
81
|
+
_(Dummy.const_defined?(:ModuleWithCallbacks)).must_equal true
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
@@ -87,7 +87,7 @@ describe "Configuring the stripe engine" do
|
|
87
87
|
let(:warning_msg) { "[DEPRECATION] to align with stripe nomenclature, stripe.api_key has been renamed to config.stripe.secret_key\n" }
|
88
88
|
|
89
89
|
it 'should output a warning' do
|
90
|
-
-> { subject }.must_output '', warning_msg
|
90
|
+
_(-> { subject }).must_output '', warning_msg
|
91
91
|
end
|
92
92
|
end
|
93
93
|
end
|
@@ -1,8 +1,3 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
# For Rails 4 compat
|
4
|
-
SystemTestCaseKlass = defined?(ActionDispatch::SystemTestCase) ? ActionDispatch::SystemTestCase : NullSystemTestCase
|
5
|
-
|
6
|
-
class ApplicationSystemTestCase < SystemTestCaseKlass
|
1
|
+
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
|
7
2
|
driven_by :selenium_chrome_headless
|
8
|
-
end
|
3
|
+
end
|
data/test/testing_spec.rb
CHANGED
@@ -28,8 +28,8 @@ describe "Testing" do
|
|
28
28
|
|
29
29
|
it 'the callback must run' do
|
30
30
|
subject
|
31
|
-
event.wont_be_nil
|
32
|
-
event.type.must_equal "invoice.payment_succeeded"
|
31
|
+
_(event).wont_be_nil
|
32
|
+
_(event.type).must_equal "invoice.payment_succeeded"
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -38,7 +38,7 @@ describe "Testing" do
|
|
38
38
|
|
39
39
|
it 'the callback must not run' do
|
40
40
|
subject
|
41
|
-
event.must_be_nil
|
41
|
+
_(event).must_be_nil
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
@@ -49,11 +49,11 @@ describe "Testing" do
|
|
49
49
|
|
50
50
|
it 'the callback should run with overwritten properties' do
|
51
51
|
subject
|
52
|
-
event.wont_be_nil
|
53
|
-
event.type.must_equal "invoice.payment_succeeded"
|
54
|
-
target.subtotal.must_equal 500
|
55
|
-
target.total.must_equal 1000
|
56
|
-
target.currency.must_equal "eur"
|
52
|
+
_(event).wont_be_nil
|
53
|
+
_(event.type).must_equal "invoice.payment_succeeded"
|
54
|
+
_(target.subtotal).must_equal 500
|
55
|
+
_(target.total).must_equal 1000
|
56
|
+
_(target.currency).must_equal "eur"
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stripe-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Lowell
|
8
8
|
- Nola Stowe
|
9
9
|
- SengMing Tan
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2020-09-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -18,28 +18,28 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
21
|
+
version: '5.1'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: '
|
28
|
+
version: '5.1'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: stripe
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - ">="
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
35
|
+
version: 3.15.0
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
42
|
+
version: 3.15.0
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: responders
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,21 +78,21 @@ files:
|
|
78
78
|
- app/assets/stripe/stripe_elements.js
|
79
79
|
- app/controllers/stripe/application_controller.rb
|
80
80
|
- app/controllers/stripe/events_controller.rb
|
81
|
-
- app/controllers/stripe/pings_controller.rb
|
82
81
|
- app/helpers/stripe/javascript_helper.rb
|
83
82
|
- app/models/stripe/event_dispatch.rb
|
84
|
-
- app/models/stripe/ping.rb
|
85
83
|
- app/views/stripe/_elements.html.erb
|
86
84
|
- app/views/stripe/_elements_js.html.erb
|
87
85
|
- app/views/stripe/_js.html.erb
|
88
86
|
- config/locales/en.yml
|
89
87
|
- config/routes.rb
|
90
|
-
- gemfiles/
|
88
|
+
- gemfiles/rails51.gemfile
|
89
|
+
- gemfiles/rails52.gemfile
|
91
90
|
- lib/generators/stripe/install_generator.rb
|
92
91
|
- lib/generators/templates/coupons.rb
|
93
92
|
- lib/generators/templates/plans.rb
|
94
93
|
- lib/generators/templates/products.rb
|
95
94
|
- lib/stripe-rails.rb
|
95
|
+
- lib/stripe/billing_tier.rb
|
96
96
|
- lib/stripe/callbacks.rb
|
97
97
|
- lib/stripe/callbacks/builder.rb
|
98
98
|
- lib/stripe/configuration_builder.rb
|
@@ -155,7 +155,6 @@ files:
|
|
155
155
|
- test/fixtures/stripe_plans_headers_2017.json
|
156
156
|
- test/invoice.json
|
157
157
|
- test/javascript_helper_spec.rb
|
158
|
-
- test/pings_controller_spec.rb
|
159
158
|
- test/plan_builder_spec.rb
|
160
159
|
- test/product_builder_spec.rb
|
161
160
|
- test/spec_helper.rb
|
@@ -163,13 +162,12 @@ files:
|
|
163
162
|
- test/support/application_system_test_case.rb
|
164
163
|
- test/support/callback_helpers.rb
|
165
164
|
- test/support/fixture_loader.rb
|
166
|
-
- test/support/null_system_test_case.rb
|
167
165
|
- test/testing_spec.rb
|
168
166
|
homepage: https://github.com/tansengming/stripe-rails
|
169
167
|
licenses:
|
170
168
|
- MIT
|
171
169
|
metadata: {}
|
172
|
-
post_install_message:
|
170
|
+
post_install_message:
|
173
171
|
rdoc_options: []
|
174
172
|
require_paths:
|
175
173
|
- lib
|
@@ -184,8 +182,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
182
|
- !ruby/object:Gem::Version
|
185
183
|
version: '0'
|
186
184
|
requirements: []
|
187
|
-
rubygems_version: 3.
|
188
|
-
signing_key:
|
185
|
+
rubygems_version: 3.1.2
|
186
|
+
signing_key:
|
189
187
|
specification_version: 4
|
190
188
|
summary: A gem to integrate stripe into your rails app
|
191
189
|
test_files:
|
@@ -238,7 +236,6 @@ test_files:
|
|
238
236
|
- test/fixtures/stripe_plans_headers_2017.json
|
239
237
|
- test/invoice.json
|
240
238
|
- test/javascript_helper_spec.rb
|
241
|
-
- test/pings_controller_spec.rb
|
242
239
|
- test/plan_builder_spec.rb
|
243
240
|
- test/product_builder_spec.rb
|
244
241
|
- test/spec_helper.rb
|
@@ -246,5 +243,4 @@ test_files:
|
|
246
243
|
- test/support/application_system_test_case.rb
|
247
244
|
- test/support/callback_helpers.rb
|
248
245
|
- test/support/fixture_loader.rb
|
249
|
-
- test/support/null_system_test_case.rb
|
250
246
|
- test/testing_spec.rb
|
data/app/models/stripe/ping.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Stripe::PingsController do
|
4
|
-
parallelize_me!
|
5
|
-
include Rack::Test::Methods
|
6
|
-
|
7
|
-
let(:app) { Rails.application }
|
8
|
-
before do
|
9
|
-
header 'Accept', 'application/json'
|
10
|
-
header 'Content-Type', 'application/json'
|
11
|
-
end
|
12
|
-
|
13
|
-
describe 'the ping interface' do
|
14
|
-
subject { get '/stripe/ping' }
|
15
|
-
|
16
|
-
it { subject.must_be :ok? }
|
17
|
-
end
|
18
|
-
end
|