fake_stripe 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a3e83c6e7c0077e6017382efc3785916d7e9c8ed
4
- data.tar.gz: 72c506491392d9ee13eb6d000342cca5946d4c1c
2
+ SHA256:
3
+ metadata.gz: 413ab3d5a27b5f4ae2a6be8cb3bfa8b16630bd06e6e2d34a5b96ce206cf06e1b
4
+ data.tar.gz: 4c110b55b4c1677b7070d76fd99eee063bbd186dc463a1e50249996341e7fd04
5
5
  SHA512:
6
- metadata.gz: 8b62fe6dae65655deb06638bb064cf0136848ac65c2fc0bd9697143c47928835e1c3b36a72f51de710655cf20fe5bd9c18f870a652ae005327f8f18c55b41a9b
7
- data.tar.gz: b993495c1dabda170cb5f2bb4c160749ba55989fadb0d2ea2b19e08a7b1b5a56d09e0d2e91401bd9c33741a09d4c7b7d042e683e7a4739a2d1a1075a63488956
6
+ metadata.gz: b9a000e2733d4a823c2de60d55f9b53f75261799c05cdae3546603040bc1ad1561c69ee28b713e78c75fd7498bd0a68d0aa395102253120936a918eb2b49a65b
7
+ data.tar.gz: 45ed28b5046d62eb4001cec3581578dd62b912c130d31eeaa57c2ab081d25beabb3bc725d7992240838736a52ba72eede1aa2409031e88cf6fa418018f4815e5
data/README.md CHANGED
@@ -36,20 +36,27 @@ end
36
36
 
37
37
  Include the Stripe JavaScript in your application template.
38
38
 
39
- If you're using Stripe.js v1:
39
+ For Stripe.js v1:
40
40
 
41
41
  ```rhtml
42
42
  # app/views/layouts/application.html.erb
43
43
  <%= javascript_include_tag "#{STRIPE_JS_HOST}/v1/" %>
44
44
  ```
45
45
 
46
- Or if you're using Stripe.js v2:
46
+ For Stripe.js v2:
47
47
 
48
48
  ```rhtml
49
49
  # app/views/layouts/application.html.erb
50
50
  <%= javascript_include_tag "#{STRIPE_JS_HOST}/v2/" %>
51
51
  ```
52
52
 
53
+ For Stripe.js v3:
54
+
55
+ ```rhtml
56
+ # app/views/layouts/application.html.erb
57
+ <%= javascript_include_tag "#{STRIPE_JS_HOST}/v3/" %>
58
+ ```
59
+
53
60
  When the test suite runs `fake_stripe` will override the address for
54
61
  `STRIPE_JS_HOST` and serve up a local version of [Stripe.js](https://stripe.com/docs/stripe.js).
55
62
 
@@ -0,0 +1,34 @@
1
+ class Element {
2
+ mount(el) {
3
+ if (typeof el === "string") {
4
+ el = document.querySelector(el)[0];
5
+ }
6
+
7
+ el.innerHTML = `
8
+ <input id="stripe-cardnumber" placeholder="cardnumber" size="16" type="text">
9
+ <input placeholder="exp-date" size="6" type="text">
10
+ <input placeholder="cvc" size="3" type="text">
11
+ <input placeholder="postal" size="6" type="text">
12
+ `;
13
+ }
14
+ }
15
+
16
+ window.Stripe = () => {
17
+ const fetchLastFour = () => {
18
+ return document.getElementById("stripe-cardnumber").value.substr(-4, 4);
19
+ };
20
+
21
+ return {
22
+ elements: () => {
23
+ return {
24
+ create: (type, options) => new Element()
25
+ };
26
+ },
27
+
28
+ createToken: card => {
29
+ return new Promise(resolve => {
30
+ resolve({ token: { id: "tok_123", card: { last4: fetchLastFour() } } });
31
+ });
32
+ }
33
+ };
34
+ };
@@ -0,0 +1,8 @@
1
+ {
2
+ "error" :
3
+ {
4
+ "type" : "invalid_request_error",
5
+ "message" : "Invalid positive integer",
6
+ "param" : "amount"
7
+ }
8
+ }
@@ -5,8 +5,12 @@ module FakeStripe
5
5
 
6
6
  # Charges
7
7
  post '/v1/charges' do
8
- FakeStripe.charge_count += 1
9
- json_response 201, fixture('create_charge')
8
+ if params['amount'] && params['amount'].to_i <= 0
9
+ json_response 400, fixture('invalid_positive_integer')
10
+ else
11
+ FakeStripe.charge_count += 1
12
+ json_response 201, fixture('create_charge')
13
+ end
10
14
  end
11
15
 
12
16
  get '/v1/charges/:charge_id' do
@@ -1,34 +1,42 @@
1
- require 'capybara'
2
- require 'capybara/server'
3
- require 'fake_stripe/utils'
4
- require 'sinatra/base'
1
+ require "capybara"
2
+ require "capybara/server"
3
+ require "fake_stripe/utils"
4
+ require "sinatra/base"
5
5
 
6
6
  module FakeStripe
7
7
  class StubStripeJS < Sinatra::Base
8
- get '/v1/' do
9
- file_path = File.join(File.dirname(__FILE__), '/assets/v1.js')
8
+ get "/v1/" do
9
+ file_path = File.join(File.dirname(__FILE__), "/assets/v1.js")
10
10
 
11
- content_type 'text/javascript'
11
+ content_type "text/javascript"
12
12
  status 200
13
13
  IO.read(file_path)
14
14
  end
15
15
 
16
- get '/v2/' do
17
- file_path = File.join(File.dirname(__FILE__), '/assets/v2.js')
18
- mock_file_path = File.join(File.dirname(__FILE__), '/assets/v2-mock.js')
16
+ get "/v2/" do
17
+ file_path = File.join(File.dirname(__FILE__), "/assets/v2.js")
18
+ mock_file_path = File.join(File.dirname(__FILE__), "/assets/v2-mock.js")
19
19
 
20
- content_type 'text/javascript'
20
+ content_type "text/javascript"
21
21
  status 200
22
22
  IO.read(file_path) + IO.read(mock_file_path)
23
23
  end
24
24
 
25
+ get "/v3/" do
26
+ file_path = File.join(File.dirname(__FILE__), "/assets/v3.js")
27
+
28
+ content_type "text/javascript"
29
+ status 200
30
+ IO.read(file_path)
31
+ end
32
+
25
33
  def self.boot(port = FakeStripe::Utils.find_available_port)
26
34
  instance = new
27
- Capybara::Server.new(instance, port).tap { |server| server.boot }
35
+ Capybara::Server.new(instance, port: port).tap(&:boot)
28
36
  end
29
37
 
30
38
  def self.boot_once
31
- @@stripe_js_server ||= FakeStripe::StubStripeJS.boot(self.server_port)
39
+ @@stripe_js_server ||= FakeStripe::StubStripeJS.boot(server_port)
32
40
  end
33
41
 
34
42
  def self.server_port
@@ -1,3 +1,3 @@
1
1
  module FakeStripe
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fake_stripe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harlow Ward
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-05 00:00:00.000000000 Z
11
+ date: 2018-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: puma
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -113,6 +127,7 @@ files:
113
127
  - lib/fake_stripe/assets/v1.js
114
128
  - lib/fake_stripe/assets/v2-mock.js
115
129
  - lib/fake_stripe/assets/v2.js
130
+ - lib/fake_stripe/assets/v3.js
116
131
  - lib/fake_stripe/configuration.rb
117
132
  - lib/fake_stripe/fixtures/cancel_subscription.json
118
133
  - lib/fake_stripe/fixtures/cancel_transfer.json
@@ -139,6 +154,7 @@ files:
139
154
  - lib/fake_stripe/fixtures/delete_plan.json
140
155
  - lib/fake_stripe/fixtures/delete_recipient.json
141
156
  - lib/fake_stripe/fixtures/delete_subscription_discount.json
157
+ - lib/fake_stripe/fixtures/invalid_positive_integer.json
142
158
  - lib/fake_stripe/fixtures/list_application_fees.json
143
159
  - lib/fake_stripe/fixtures/list_balance_history.json
144
160
  - lib/fake_stripe/fixtures/list_cards.json
@@ -208,7 +224,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
224
  version: '0'
209
225
  requirements: []
210
226
  rubyforge_project:
211
- rubygems_version: 2.6.13
227
+ rubygems_version: 2.7.7
212
228
  signing_key:
213
229
  specification_version: 4
214
230
  summary: A fake Stripe server.