workarea-stripe 1.0.0 → 1.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/{.eslintrc → .eslintrc.json} +0 -0
- data/.github/workflows/ci.yml +57 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +17 -0
- data/Gemfile +2 -4
- data/README.md +23 -46
- data/Rakefile +4 -4
- data/app/models/workarea/payment/credit_card.decorator +5 -0
- data/lib/active_merchant/billing/bogus_stripe_gateway.rb +1 -1
- data/lib/workarea/stripe/version.rb +1 -1
- data/test/system/workarea/storefront/download_system_test.decorator +61 -0
- data/test/system/workarea/storefront/guest_checkout_system_test.decorator +1 -1
- data/test/system/workarea/storefront/stripe_payment_system_test.rb +1 -1
- data/workarea-stripe.gemspec +1 -1
- metadata +9 -13
- data/test/system/workarea/storefront/digital_products_system_test.decorator +0 -67
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd29764a459c7d4f9532363e3e62359a8a12fed89510e74e379dd7b69218d340
|
4
|
+
data.tar.gz: 613eb162eb6fa2ed29550dd4c7860a0172a5792d9a9e1cd01b7be8b8e01726db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f59a0dbfa719242fa226214ac8a57b51b86600854130b207977dc3413a64b0afb630a60fcd21473b200966e0d5b5de153d7b34b000d09dc3e8149e9e0f1e4110
|
7
|
+
data.tar.gz: e4b9d070a3900730e22de2acd0c79ab32db42e05991e0a2f26484ffeec7030492387a19d32193812dc03e977cf73077ede35b5e9c57bf85d5aed1783a416f33a
|
File without changes
|
@@ -0,0 +1,57 @@
|
|
1
|
+
name: CI
|
2
|
+
on: [push]
|
3
|
+
|
4
|
+
jobs:
|
5
|
+
static_analysis:
|
6
|
+
runs-on: ubuntu-latest
|
7
|
+
steps:
|
8
|
+
- uses: actions/checkout@v1
|
9
|
+
- uses: workarea-commerce/ci/bundler-audit@v1
|
10
|
+
- uses: workarea-commerce/ci/rubocop@v1
|
11
|
+
- uses: workarea-commerce/ci/eslint@v1
|
12
|
+
with:
|
13
|
+
args: '**/*.js'
|
14
|
+
|
15
|
+
admin_tests:
|
16
|
+
runs-on: ubuntu-latest
|
17
|
+
steps:
|
18
|
+
- uses: actions/checkout@v1
|
19
|
+
- uses: actions/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
ruby-version: 2.6.x
|
22
|
+
- uses: workarea-commerce/ci/test@v1
|
23
|
+
with:
|
24
|
+
command: bin/rails app:workarea:test:admin
|
25
|
+
|
26
|
+
core_tests:
|
27
|
+
runs-on: ubuntu-latest
|
28
|
+
steps:
|
29
|
+
- uses: actions/checkout@v1
|
30
|
+
- uses: actions/setup-ruby@v1
|
31
|
+
with:
|
32
|
+
ruby-version: 2.6.x
|
33
|
+
- uses: workarea-commerce/ci/test@v1
|
34
|
+
with:
|
35
|
+
command: bin/rails app:workarea:test:core
|
36
|
+
|
37
|
+
storefront_tests:
|
38
|
+
runs-on: ubuntu-latest
|
39
|
+
steps:
|
40
|
+
- uses: actions/checkout@v1
|
41
|
+
- uses: actions/setup-ruby@v1
|
42
|
+
with:
|
43
|
+
ruby-version: 2.6.x
|
44
|
+
- uses: workarea-commerce/ci/test@v1
|
45
|
+
with:
|
46
|
+
command: bin/rails app:workarea:test:storefront
|
47
|
+
|
48
|
+
plugins_tests:
|
49
|
+
runs-on: ubuntu-latest
|
50
|
+
steps:
|
51
|
+
- uses: actions/checkout@v1
|
52
|
+
- uses: actions/setup-ruby@v1
|
53
|
+
with:
|
54
|
+
ruby-version: 2.6.x
|
55
|
+
- uses: workarea-commerce/ci/test@v1
|
56
|
+
with:
|
57
|
+
command: bin/rails app:workarea:test:plugins
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
Workarea Stripe 1.1.0 (2019-11-26)
|
2
|
+
--------------------------------------------------------------------------------
|
3
|
+
|
4
|
+
* Remove decorator for test that was removed in base
|
5
|
+
|
6
|
+
Ben Crouse
|
7
|
+
|
8
|
+
* Update credit card issuer validation to allow strip tokens
|
9
|
+
|
10
|
+
Jeff Yucis
|
11
|
+
|
12
|
+
* Update README
|
13
|
+
|
14
|
+
Matt Duffy
|
15
|
+
|
16
|
+
|
17
|
+
|
1
18
|
Workarea Stripe 1.0.0 (2019-08-21)
|
2
19
|
--------------------------------------------------------------------------------
|
3
20
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -3,14 +3,28 @@ Workarea Stripe
|
|
3
3
|
|
4
4
|
Stripe plugin for the Workarea platform.
|
5
5
|
|
6
|
+
Getting Started
|
7
|
+
--------------------------------------------------------------------------------
|
8
|
+
|
9
|
+
Add the gem to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
# ...
|
13
|
+
gem 'workarea-stripe'
|
14
|
+
# ...
|
15
|
+
```
|
16
|
+
|
17
|
+
Update your application's bundle.
|
18
|
+
|
19
|
+
```bash
|
20
|
+
cd path/to/application
|
21
|
+
bundle
|
22
|
+
```
|
23
|
+
|
6
24
|
Configuration
|
7
25
|
--------------------------------------------------------------------------------
|
8
26
|
|
9
|
-
To configure the stripe plugin you will need both a public and secret key from stripe.
|
10
|
-
Setting up a stripe sandbox for development is very easy, just create an account
|
11
|
-
at <https://dashboard.stripe.com/register>.
|
12
|
-
Once you have an account visit <https://dashboard.stripe.com/account/apikeys> to
|
13
|
-
access your keys.
|
27
|
+
To configure the stripe plugin you will need both a public and secret key from stripe. Setting up a stripe sandbox for development is very easy, just create an account at <https://dashboard.stripe.com/register>. Once you have an account visit <https://dashboard.stripe.com/account/apikeys> to access your keys.
|
14
28
|
|
15
29
|
Add the following configuration to your app secrets
|
16
30
|
|
@@ -42,49 +56,12 @@ example:
|
|
42
56
|
|
43
57
|
See the checkouts/payment.html.haml view in this plugin for reference.
|
44
58
|
|
45
|
-
|
46
|
-
--------------------------------------------------------------------------------
|
47
|
-
|
48
|
-
This gem contains a rails engine that must be mounted onto a host Rails application.
|
49
|
-
|
50
|
-
To access Workarea gems and source code, you must be an employee of WebLinc or a licensed retailer or partner.
|
51
|
-
|
52
|
-
Workarea gems are hosted privately at https://gems.weblinc.com/.
|
53
|
-
You must have individual or team credentials to install gems from this server. Add your gems server credentials to Bundler:
|
54
|
-
|
55
|
-
bundle config gems.weblinc.com my_username:my_password
|
56
|
-
|
57
|
-
Or set the appropriate environment variable in a shell startup file:
|
58
|
-
|
59
|
-
export BUNDLE_GEMS__WEBLINC__COM='my_username:my_password'
|
60
|
-
|
61
|
-
Then add the gem to your application's Gemfile specifying the source:
|
62
|
-
|
63
|
-
# ...
|
64
|
-
gem 'workarea-stripe', source: 'https://gems.weblinc.com'
|
65
|
-
# ...
|
66
|
-
|
67
|
-
Or use a source block:
|
68
|
-
|
69
|
-
# ...
|
70
|
-
source 'https://gems.weblinc.com' do
|
71
|
-
gem 'workarea-stripe'
|
72
|
-
end
|
73
|
-
# ...
|
74
|
-
|
75
|
-
Update your application's bundle.
|
76
|
-
|
77
|
-
cd path/to/application
|
78
|
-
bundle
|
79
|
-
|
80
|
-
Workarea Platform Documentation
|
59
|
+
Workarea Commerce Documentation
|
81
60
|
--------------------------------------------------------------------------------
|
82
61
|
|
83
|
-
See [
|
62
|
+
See [https://developer.workarea.com](https://developer.workarea.com) for Workarea Commerce documentation.
|
84
63
|
|
85
|
-
|
64
|
+
License
|
86
65
|
--------------------------------------------------------------------------------
|
87
66
|
|
88
|
-
|
89
|
-
|
90
|
-
For licensing, contact sales@workarea.com.
|
67
|
+
Workarea Stripe is released under the [Business Software License](LICENSE)
|
data/Rakefile
CHANGED
@@ -34,10 +34,10 @@ desc "Release version #{Workarea::Stripe::VERSION} of the gem"
|
|
34
34
|
task :release do
|
35
35
|
host = "https://#{ENV['BUNDLE_GEMS__WEBLINC__COM']}@gems.weblinc.com"
|
36
36
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
37
|
+
Rake::Task['workarea:changelog'].execute
|
38
|
+
system 'git add CHANGELOG.md'
|
39
|
+
system 'git commit -m "Update CHANGELOG"'
|
40
|
+
system 'git push origin HEAD'
|
41
41
|
|
42
42
|
system "git tag -a v#{Workarea::Stripe::VERSION} -m 'Tagging #{Workarea::Stripe::VERSION}'"
|
43
43
|
system 'git push --tags'
|
@@ -17,7 +17,7 @@ module ActiveMerchant
|
|
17
17
|
def store(paysource, options = {})
|
18
18
|
case normalize(paysource)
|
19
19
|
when /1$/, /^tok/, ""
|
20
|
-
Response.new(true, SUCCESS_MESSAGE, { "id" => "cus_5678", "sources" => { "data" => [{ "id" => 'card_1111', "last4" => '1111', "exp_month" => "1", "exp_year" => "2020", "brand" => "
|
20
|
+
Response.new(true, SUCCESS_MESSAGE, { "id" => "cus_5678", "sources" => { "data" => [{ "id" => 'card_1111', "last4" => '1111', "exp_month" => "1", "exp_year" => "2020", "brand" => "Test Card" }] } }, test: true)
|
21
21
|
when /2$/
|
22
22
|
Response.new(false, FAILURE_MESSAGE, { billingid: nil, error: FAILURE_MESSAGE }, test: true, error_code: STANDARD_ERROR_CODE[:processing_error])
|
23
23
|
else
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Workarea
|
2
|
+
decorate Storefront::DownloadSystemTest, with: :stripe do
|
3
|
+
def test_checking_out_with_downloadable_product
|
4
|
+
setup_checkout_specs
|
5
|
+
|
6
|
+
Order.first.items.delete_all
|
7
|
+
|
8
|
+
product = create_product(
|
9
|
+
name: 'Digital Product',
|
10
|
+
variants: [
|
11
|
+
{ sku: 'SKU1', regular: 10.to_m, tax_code: '001' },
|
12
|
+
{ sku: 'SKU2', regular: 15.to_m, tax_code: '001' }
|
13
|
+
]
|
14
|
+
)
|
15
|
+
|
16
|
+
create_fulfillment_sku(id: 'SKU1', policy: :download, file: product_image_file)
|
17
|
+
create_fulfillment_sku(id: 'SKU2', policy: :download, file: product_image_file)
|
18
|
+
|
19
|
+
visit storefront.product_path(product)
|
20
|
+
|
21
|
+
within '.product-details__add-to-cart-form' do
|
22
|
+
select product.skus.first, from: 'sku'
|
23
|
+
click_button t('workarea.storefront.products.add_to_cart')
|
24
|
+
end
|
25
|
+
|
26
|
+
assert(page.has_content?('Success'))
|
27
|
+
|
28
|
+
start_guest_checkout
|
29
|
+
|
30
|
+
assert_current_path(storefront.checkout_addresses_path)
|
31
|
+
|
32
|
+
fill_in_email
|
33
|
+
fill_in_billing_address
|
34
|
+
click_button t('workarea.storefront.checkouts.continue_to_payment')
|
35
|
+
|
36
|
+
assert_current_path(storefront.checkout_payment_path)
|
37
|
+
assert(page.has_content?('Success'))
|
38
|
+
|
39
|
+
fill_in_credit_card
|
40
|
+
click_button t('workarea.storefront.checkouts.place_order')
|
41
|
+
|
42
|
+
assert_current_path(storefront.checkout_confirmation_path)
|
43
|
+
assert(page.has_content?('Success'))
|
44
|
+
assert(page.has_content?(t('workarea.storefront.flash_messages.order_placed')))
|
45
|
+
assert(page.has_content?(Order.first.id))
|
46
|
+
|
47
|
+
assert(page.has_content?('1019 S. 47th St.'))
|
48
|
+
assert(page.has_content?('Philadelphia'))
|
49
|
+
assert(page.has_content?('PA'))
|
50
|
+
assert(page.has_content?('19143'))
|
51
|
+
|
52
|
+
assert(page.has_content?('Test Card'))
|
53
|
+
|
54
|
+
assert(page.has_content?('Digital Product'))
|
55
|
+
assert(page.has_content?('$10.00'))
|
56
|
+
assert(page.has_content?('$0.70'))
|
57
|
+
assert(page.has_content?('$10.70'))
|
58
|
+
assert(page.has_content?(t('workarea.storefront.orders.download')))
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -92,7 +92,7 @@ decorate Workarea::Storefront::GuestCheckoutSystemTest, with: :stripe do
|
|
92
92
|
assert(page.has_content?('PA'))
|
93
93
|
assert(page.has_content?('19143'))
|
94
94
|
|
95
|
-
assert(page.has_content?('
|
95
|
+
assert(page.has_content?('Test Card'))
|
96
96
|
|
97
97
|
assert(page.has_content?(instruction))
|
98
98
|
|
data/workarea-stripe.gemspec
CHANGED
metadata
CHANGED
@@ -1,35 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workarea-stripe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Yucis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: workarea
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 3.x
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version: 3.
|
19
|
+
version: 3.5.x
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 3.x
|
30
24
|
- - ">="
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version: 3.
|
26
|
+
version: 3.5.x
|
33
27
|
description: Stripe payment processor integration for the Workarea Commerce Platform
|
34
28
|
email:
|
35
29
|
- jyucis@weblinc.com
|
@@ -38,11 +32,13 @@ extensions: []
|
|
38
32
|
extra_rdoc_files: []
|
39
33
|
files:
|
40
34
|
- ".editorconfig"
|
41
|
-
- ".eslintrc"
|
35
|
+
- ".eslintrc.json"
|
42
36
|
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
43
37
|
- ".github/ISSUE_TEMPLATE/documentation-request.md"
|
44
38
|
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
39
|
+
- ".github/workflows/ci.yml"
|
45
40
|
- ".gitignore"
|
41
|
+
- ".rubocop.yml"
|
46
42
|
- CHANGELOG.md
|
47
43
|
- CODE_OF_CONDUCT.md
|
48
44
|
- CONTRIBUTING.md
|
@@ -136,7 +132,7 @@ files:
|
|
136
132
|
- test/support/stripe_public_key.rb
|
137
133
|
- test/system/workarea/storefront/analytics_system_test.decorator
|
138
134
|
- test/system/workarea/storefront/credit_cards_system_test.decorator
|
139
|
-
- test/system/workarea/storefront/
|
135
|
+
- test/system/workarea/storefront/download_system_test.decorator
|
140
136
|
- test/system/workarea/storefront/guest_checkout_system_test.decorator
|
141
137
|
- test/system/workarea/storefront/logged_in_checkout_system_test.decorator
|
142
138
|
- test/system/workarea/storefront/no_js_system_test.decorator
|
@@ -164,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
160
|
- !ruby/object:Gem::Version
|
165
161
|
version: '0'
|
166
162
|
requirements: []
|
167
|
-
rubygems_version: 3.0.
|
163
|
+
rubygems_version: 3.0.6
|
168
164
|
signing_key:
|
169
165
|
specification_version: 4
|
170
166
|
summary: Stripe payment processor integration for the Workarea Commerce Platform
|
@@ -1,67 +0,0 @@
|
|
1
|
-
decorate Workarea::Storefront::DigitalProductsSystemTest, with: :stripe do
|
2
|
-
def fill_in_credit_card
|
3
|
-
page.driver.browser.switch_to.frame "stripe-payment-frame"
|
4
|
-
|
5
|
-
find('input[name="cardnumber"]').set('4111111111111111')
|
6
|
-
find('input[name="exp-date"]').set('12/21')
|
7
|
-
find('input[name="cvc"]').set('999')
|
8
|
-
find('input[name="postal"]').set('19143')
|
9
|
-
|
10
|
-
page.driver.browser.switch_to.default_content
|
11
|
-
end
|
12
|
-
|
13
|
-
|
14
|
-
def test_checking_out_with_a_digital_product
|
15
|
-
setup_checkout_specs
|
16
|
-
|
17
|
-
Workarea::Order.first.items.delete_all
|
18
|
-
|
19
|
-
product = create_product(
|
20
|
-
name: 'Digital Product',
|
21
|
-
digital: true,
|
22
|
-
variants: [
|
23
|
-
{ sku: 'SKU1', regular: 10.to_m },
|
24
|
-
{ sku: 'SKU2', regular: 15.to_m },
|
25
|
-
{ sku: 'SKU3', regular: 25.to_m }
|
26
|
-
]
|
27
|
-
)
|
28
|
-
|
29
|
-
visit storefront.product_path(product)
|
30
|
-
|
31
|
-
within '.product-details__add-to-cart-form' do
|
32
|
-
select product.skus.first, from: 'sku'
|
33
|
-
click_button t('workarea.storefront.products.add_to_cart')
|
34
|
-
end
|
35
|
-
|
36
|
-
assert(page.has_content?('Success'))
|
37
|
-
|
38
|
-
start_guest_checkout
|
39
|
-
|
40
|
-
assert_current_path(storefront.checkout_addresses_path)
|
41
|
-
|
42
|
-
fill_in_email
|
43
|
-
fill_in_billing_address
|
44
|
-
click_button t('workarea.storefront.checkouts.continue_to_payment')
|
45
|
-
|
46
|
-
assert_current_path(storefront.checkout_payment_path)
|
47
|
-
assert(page.has_content?('Success'))
|
48
|
-
|
49
|
-
fill_in_credit_card
|
50
|
-
click_button t('workarea.storefront.checkouts.place_order')
|
51
|
-
|
52
|
-
assert_current_path(storefront.checkout_confirmation_path)
|
53
|
-
assert(page.has_content?('Success'))
|
54
|
-
assert(page.has_content?(t('workarea.storefront.flash_messages.order_placed')))
|
55
|
-
assert(page.has_content?(Workarea::Order.first.id))
|
56
|
-
|
57
|
-
assert(page.has_content?('1019 S. 47th St.'))
|
58
|
-
assert(page.has_content?('Philadelphia'))
|
59
|
-
assert(page.has_content?('PA'))
|
60
|
-
assert(page.has_content?('19143'))
|
61
|
-
|
62
|
-
assert(page.has_content?('Visa'))
|
63
|
-
|
64
|
-
assert(page.has_content?('Digital Product'))
|
65
|
-
assert(page.has_content?('$10.00'))
|
66
|
-
end
|
67
|
-
end
|