stripe-rails 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|