stripe-rails 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/pull_request_template.md +12 -1
- data/Changelog.md +4 -1
- data/README.md +8 -0
- data/lib/stripe/engine.rb +4 -4
- data/lib/stripe/rails/version.rb +1 -1
- data/test/events_controller_spec.rb +22 -3
- data/test/stripe_initializers_spec.rb +47 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb58cd2c4b57bfb766859f950ea819137df7d25df3064654877db23a853fc181
|
4
|
+
data.tar.gz: b93b09f34648ff133397a56606a37bb5067130d19aef9007c823e13b993a4cfe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39ff75adfde760950733e00324423c99506d53f9cee614a7adc0ec61a2ea14758e9d9a1dc49a4cd2ceac83ed7c7597c8c276cb0cb169ba813c7e2de9da7fe237
|
7
|
+
data.tar.gz: 861343d690279311225fda2091e0d318c08c2c4c33e98d4fb73f9e528750a6751e7b0f07a2b1c43341da8a4011e4ff3618c3cee799445a38dd720bfab6d6b250
|
@@ -1,4 +1,15 @@
|
|
1
1
|
<!--
|
2
|
-
|
2
|
+
Thanks a bunch for helping out with the project!
|
3
|
+
|
4
|
+
Please remember to,
|
5
|
+
|
6
|
+
1. Add tests if they do not exist, fix em if they are breaking
|
7
|
+
2. Fix any issues that are stopping Code Climate from passing
|
8
|
+
2. Add a short description of the feature and tag yourself on Changelog.md
|
9
|
+
|
10
|
+
That's it!
|
11
|
+
|
12
|
+
Please give me ~1 week to get back to you.
|
13
|
+
|
3
14
|
If you'd like to receive occasional updates, sign up for our newsletter at http://tinyletter.com/stripe-rails
|
4
15
|
-->
|
data/Changelog.md
CHANGED
data/README.md
CHANGED
@@ -137,6 +137,14 @@ you prefer to environment variables, you can also set `STRIPE_PUBLISHABLE_KEY`:
|
|
137
137
|
export STRIPE_PUBLISHABLE_KEY=pk_test_XXXYYYZZZ
|
138
138
|
```
|
139
139
|
|
140
|
+
If no API key is provided, `stripe-rails` will show a warning: "No stripe.com API key was configured ...". You can silence this warning by setting the `ignore_missing_secret_key` option to `true`:
|
141
|
+
|
142
|
+
```ruby
|
143
|
+
# config/environments/production.rb
|
144
|
+
# ...
|
145
|
+
config.stripe.ignore_missing_secret_key = true
|
146
|
+
```
|
147
|
+
|
140
148
|
### Manually set your API version (optional)
|
141
149
|
|
142
150
|
If you need to test a new API version in development, you can override the version number manually.
|
data/lib/stripe/engine.rb
CHANGED
@@ -8,12 +8,12 @@ module Stripe
|
|
8
8
|
attr_accessor :testing
|
9
9
|
end
|
10
10
|
|
11
|
-
stripe_config = config.stripe = Struct.new(:api_base, :api_version, :secret_key, :verify_ssl_certs, :signing_secret, :signing_secrets, :publishable_key, :endpoint, :debug_js, :auto_mount, :eager_load, :open_timeout, :read_timeout) do
|
11
|
+
stripe_config = config.stripe = Struct.new(:api_base, :api_version, :secret_key, :ignore_missing_secret_key, :verify_ssl_certs, :signing_secret, :signing_secrets, :publishable_key, :endpoint, :debug_js, :auto_mount, :eager_load, :open_timeout, :read_timeout) do
|
12
12
|
# for backwards compatibility treat signing_secret as an alias for signing_secrets
|
13
13
|
def signing_secret=(value)
|
14
|
-
self.signing_secrets = Array(value)
|
14
|
+
self.signing_secrets = value.nil? ? value : Array(value)
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def signing_secret
|
18
18
|
self.signing_secrets && self.signing_secrets.first
|
19
19
|
end
|
@@ -43,7 +43,7 @@ module Stripe
|
|
43
43
|
end
|
44
44
|
secret_key = app.config.stripe.secret_key
|
45
45
|
Stripe.api_key = secret_key unless secret_key.nil?
|
46
|
-
$stderr.puts <<-MSG unless Stripe.api_key
|
46
|
+
$stderr.puts <<-MSG unless Stripe.api_key || app.config.stripe.ignore_missing_secret_key
|
47
47
|
No stripe.com API key was configured for environment #{::Rails.env}! this application will be
|
48
48
|
unable to interact with stripe.com. You can set your API key with either the environment
|
49
49
|
variable `STRIPE_SECRET_KEY` (recommended) or by setting `config.stripe.secret_key` in your
|
data/lib/stripe/rails/version.rb
CHANGED
@@ -10,6 +10,10 @@ describe Stripe::EventsController do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
describe 'the events interface' do
|
13
|
+
subject { post '/stripe/events', params.to_json }
|
14
|
+
|
15
|
+
before { stripe_events_stub }
|
16
|
+
|
13
17
|
let(:params) {
|
14
18
|
{
|
15
19
|
id: 'evt_00000000000000',
|
@@ -17,14 +21,29 @@ describe Stripe::EventsController do
|
|
17
21
|
data: {object: 'customer'},
|
18
22
|
}
|
19
23
|
}
|
20
|
-
|
21
|
-
before do
|
24
|
+
let(:stripe_events_stub) do
|
22
25
|
stub_request(:get, "https://api.stripe.com/v1/events/evt_00000000000000").
|
23
26
|
to_return(status: 200, body: Stripe::Event.construct_from(params).to_json, headers: {})
|
24
27
|
end
|
25
|
-
subject { post '/stripe/events', params.to_json }
|
26
28
|
|
27
29
|
it { _(subject).must_be :ok? }
|
30
|
+
|
31
|
+
it 'should call the stripe_events_stub' do
|
32
|
+
subject
|
33
|
+
assert_requested(stripe_events_stub)
|
34
|
+
end
|
35
|
+
|
36
|
+
describe 'when signing_secret is nil' do
|
37
|
+
before do
|
38
|
+
header 'Stripe-Signature', 't=1537832721,v1=123,v0=123'
|
39
|
+
app.config.stripe.signing_secret = nil
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should call the stripe_events_stub' do
|
43
|
+
subject
|
44
|
+
assert_requested(stripe_events_stub)
|
45
|
+
end
|
46
|
+
end
|
28
47
|
end
|
29
48
|
|
30
49
|
describe 'signed webhooks' do
|
@@ -12,9 +12,10 @@ describe "Configuring the stripe engine" do
|
|
12
12
|
def rerun_initializers!; initializers.each{|init| init.run(app) }; end
|
13
13
|
|
14
14
|
after do
|
15
|
-
Stripe.api_version
|
16
|
-
Stripe.api_base
|
17
|
-
Stripe.api_key
|
15
|
+
Stripe.api_version = nil
|
16
|
+
Stripe.api_base = 'https://api.stripe.com'
|
17
|
+
Stripe.api_key = 'XYZ'
|
18
|
+
ENV['STRIPE_SECRET_KEY'] = 'XYZ'
|
18
19
|
end
|
19
20
|
|
20
21
|
describe 'Stripe configurations' do
|
@@ -40,7 +41,7 @@ describe "Configuring the stripe engine" do
|
|
40
41
|
app.config.stripe.open_timeout = 33
|
41
42
|
app.config.stripe.read_timeout = 88
|
42
43
|
rerun_initializers!
|
43
|
-
end
|
44
|
+
end
|
44
45
|
|
45
46
|
it "reads values that is set in the environment" do
|
46
47
|
subject
|
@@ -56,6 +57,16 @@ describe "Configuring the stripe engine" do
|
|
56
57
|
_(app.config.stripe.signing_secrets.length).must_equal 1
|
57
58
|
end
|
58
59
|
|
60
|
+
it "supports nil signing_secret" do
|
61
|
+
subject
|
62
|
+
|
63
|
+
app.config.stripe.signing_secret = nil
|
64
|
+
rerun_initializers!
|
65
|
+
|
66
|
+
_(app.config.stripe.signing_secret).must_equal nil
|
67
|
+
_(app.config.stripe.signing_secrets).must_equal nil
|
68
|
+
end
|
69
|
+
|
59
70
|
it "supports multiple signing secrets" do
|
60
71
|
subject
|
61
72
|
|
@@ -90,4 +101,36 @@ describe "Configuring the stripe engine" do
|
|
90
101
|
_(-> { subject }).must_output '', warning_msg
|
91
102
|
end
|
92
103
|
end
|
104
|
+
|
105
|
+
describe 'missing stripe.secret_key' do
|
106
|
+
subject do
|
107
|
+
ENV['STRIPE_SECRET_KEY'] = nil
|
108
|
+
Stripe.api_key = nil
|
109
|
+
app.config.stripe.secret_key = nil
|
110
|
+
rerun_initializers!
|
111
|
+
end
|
112
|
+
let(:warning_msg) { /No stripe.com API key was configured for environment test!/ }
|
113
|
+
|
114
|
+
it 'should output a warning' do
|
115
|
+
_(-> { subject }).must_output '', warning_msg
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
describe 'stripe.ignore_missing_secret_key' do
|
120
|
+
subject do
|
121
|
+
ENV['STRIPE_SECRET_KEY'] = nil
|
122
|
+
Stripe.api_key = nil
|
123
|
+
app.config.stripe.secret_key = nil
|
124
|
+
app.config.stripe.ignore_missing_secret_key = true
|
125
|
+
rerun_initializers!
|
126
|
+
end
|
127
|
+
|
128
|
+
after do
|
129
|
+
app.config.stripe.ignore_missing_secret_key = false
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'should not output a warning' do
|
133
|
+
_(-> { subject }).must_output '', ''
|
134
|
+
end
|
135
|
+
end
|
93
136
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stripe-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Lowell
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2020-
|
13
|
+
date: 2020-10-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|