workarea-afterpay 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +54 -0
- data/.rubocop.yml +2 -0
- data/CHANGELOG.md +21 -0
- data/Gemfile +2 -3
- data/Rakefile +1 -2
- data/app/models/workarea/payment/authorize/afterpay.rb +1 -1
- data/app/models/workarea/payment/capture/afterpay.rb +1 -1
- data/app/models/workarea/payment/purchase/afterpay.rb +1 -1
- data/app/services/workarea/afterpay/order_builder.rb +0 -1
- data/app/view_models/workarea/storefront/afterpay_view_model.rb +0 -1
- data/lib/workarea/afterpay/bogus_gateway.rb +11 -4
- data/lib/workarea/afterpay/version.rb +1 -1
- data/test/models/workarea/payment/afterpay_payment_integration_test.rb +43 -2
- data/test/services/workarea/afterpay/order_builder_test.rb +0 -1
- metadata +5 -4
- data/test/dummy/config/initializers/session_store.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f170109c4e7aadf5517d681dae21220ff6cbe1e35126ab58aa54180cd02884d
|
4
|
+
data.tar.gz: 900b3992335bbf4f70be4b1a521d6aa484b9a1a319fced02a44b257aa490f951
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92464c1f313772dfe084620492874c17fe712f957cdd0591da6a5fa3615e583e95a537f3fe10e75a600e03d2a5348818c88416408ee94c926198ecfbb729ee7f
|
7
|
+
data.tar.gz: 45a8347a3823439093570d7c8f85388b0a89ee685f79131a4bf15e3df00eec4f6a7366ab033a9674c213f71388b037087e2afd244a9ab77210611bd59d9b07a3
|
@@ -0,0 +1,54 @@
|
|
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
|
+
|
12
|
+
admin_tests:
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
steps:
|
15
|
+
- uses: actions/checkout@v1
|
16
|
+
- uses: actions/setup-ruby@v1
|
17
|
+
with:
|
18
|
+
ruby-version: 2.6.x
|
19
|
+
- uses: workarea-commerce/ci/test@v1
|
20
|
+
with:
|
21
|
+
command: bin/rails app:workarea:test:admin
|
22
|
+
|
23
|
+
core_tests:
|
24
|
+
runs-on: ubuntu-latest
|
25
|
+
steps:
|
26
|
+
- uses: actions/checkout@v1
|
27
|
+
- uses: actions/setup-ruby@v1
|
28
|
+
with:
|
29
|
+
ruby-version: 2.6.x
|
30
|
+
- uses: workarea-commerce/ci/test@v1
|
31
|
+
with:
|
32
|
+
command: bin/rails app:workarea:test:core
|
33
|
+
|
34
|
+
storefront_tests:
|
35
|
+
runs-on: ubuntu-latest
|
36
|
+
steps:
|
37
|
+
- uses: actions/checkout@v1
|
38
|
+
- uses: actions/setup-ruby@v1
|
39
|
+
with:
|
40
|
+
ruby-version: 2.6.x
|
41
|
+
- uses: workarea-commerce/ci/test@v1
|
42
|
+
with:
|
43
|
+
command: bin/rails app:workarea:test:storefront
|
44
|
+
|
45
|
+
plugins_tests:
|
46
|
+
runs-on: ubuntu-latest
|
47
|
+
steps:
|
48
|
+
- uses: actions/checkout@v1
|
49
|
+
- uses: actions/setup-ruby@v1
|
50
|
+
with:
|
51
|
+
ruby-version: 2.6.x
|
52
|
+
- uses: workarea-commerce/ci/test@v1
|
53
|
+
with:
|
54
|
+
command: bin/rails app:workarea:test:plugins
|
data/.rubocop.yml
ADDED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,24 @@
|
|
1
|
+
Workarea Afterpay 2.1.1 (2020-05-04)
|
2
|
+
--------------------------------------------------------------------------------
|
3
|
+
|
4
|
+
* Respect payment declined in authorize transactions
|
5
|
+
|
6
|
+
|
7
|
+
Ben Crouse
|
8
|
+
|
9
|
+
* Respect decline payment responses in capture and purchase operations
|
10
|
+
|
11
|
+
Fixes #3
|
12
|
+
|
13
|
+
Ben Crouse
|
14
|
+
|
15
|
+
* Add CI and rubocop linting
|
16
|
+
|
17
|
+
|
18
|
+
Jeff Yucis
|
19
|
+
|
20
|
+
|
21
|
+
|
1
22
|
Workarea Afterpay 2.1.0 (2019-11-12)
|
2
23
|
--------------------------------------------------------------------------------
|
3
24
|
|
data/Gemfile
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
|
-
git_source(:github) { |repo| "
|
3
|
-
|
2
|
+
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
4
3
|
# Declare your gem's dependencies in workarea-afterpay.gemspec.
|
5
4
|
# Bundler will treat runtime dependencies like base dependencies, and
|
6
5
|
# development dependencies will be added by default to the :development group.
|
@@ -14,4 +13,4 @@ gemspec
|
|
14
13
|
# To use a debugger
|
15
14
|
# gem 'byebug', group: [:development, :test]
|
16
15
|
|
17
|
-
gem 'workarea'
|
16
|
+
gem 'workarea', github: 'workarea-commerce/workarea', branch: 'v3.5-stable'
|
data/Rakefile
CHANGED
@@ -37,10 +37,9 @@ task :release do
|
|
37
37
|
Rake::Task['workarea:changelog'].execute
|
38
38
|
system 'git add CHANGELOG.md'
|
39
39
|
system 'git commit -m "Update CHANGELOG"'
|
40
|
-
system 'git push origin HEAD'
|
41
40
|
|
42
41
|
system "git tag -a v#{Workarea::Afterpay::VERSION} -m 'Tagging #{Workarea::Afterpay::VERSION}'"
|
43
|
-
system 'git push --tags'
|
42
|
+
system 'git push origin HEAD --follow-tags'
|
44
43
|
|
45
44
|
system "gem build workarea-afterpay.gemspec"
|
46
45
|
system "gem push workarea-afterpay-#{Workarea::Afterpay::VERSION}.gem"
|
@@ -1,7 +1,6 @@
|
|
1
1
|
module Workarea
|
2
2
|
module Afterpay
|
3
3
|
class BogusGateway
|
4
|
-
|
5
4
|
def initialize(*)
|
6
5
|
end
|
7
6
|
|
@@ -93,7 +92,11 @@ module Workarea
|
|
93
92
|
end
|
94
93
|
|
95
94
|
def capture(payment_id, amount, request_id)
|
96
|
-
|
95
|
+
if payment_id == 'declined'
|
96
|
+
Response.new(response(payment_response_body(status: 'DECLINED'), 200))
|
97
|
+
else
|
98
|
+
Response.new(response(payment_response_body, 200))
|
99
|
+
end
|
97
100
|
end
|
98
101
|
|
99
102
|
def authorize(token, order_id = "", request_id)
|
@@ -101,6 +104,8 @@ module Workarea
|
|
101
104
|
Response.new(response(capture_error_response_body, 402))
|
102
105
|
elsif token == "timeout_token"
|
103
106
|
Response.new(response(nil, 502))
|
107
|
+
elsif token == 'declined'
|
108
|
+
Response.new(response(payment_response_body(status: 'DECLINED'), 200))
|
104
109
|
else
|
105
110
|
Response.new(response(payment_response_body, 200))
|
106
111
|
end
|
@@ -109,6 +114,8 @@ module Workarea
|
|
109
114
|
def purchase(token, order_id = "", request_id)
|
110
115
|
if token == "error_token"
|
111
116
|
Response.new(response(capture_error_response_body, 402))
|
117
|
+
elsif token == 'declined'
|
118
|
+
Response.new(response(payment_response_body(status: 'DECLINED'), 200))
|
112
119
|
else
|
113
120
|
Response.new(response(payment_response_body, 200))
|
114
121
|
end
|
@@ -153,11 +160,11 @@ module Workarea
|
|
153
160
|
}
|
154
161
|
end
|
155
162
|
|
156
|
-
def payment_response_body
|
163
|
+
def payment_response_body(status: 'APPROVED')
|
157
164
|
{
|
158
165
|
"id": "12345678",
|
159
166
|
"token": "q54l9qd907m6iqqqlcrm5tpbjjsnfo47vsm59gqrfnd2rqefk9hu",
|
160
|
-
"status":
|
167
|
+
"status": status,
|
161
168
|
"created": "2015-07-14T10:08:14.123Z",
|
162
169
|
"totalAmount": {
|
163
170
|
"amount": "21.85",
|
@@ -2,7 +2,6 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
module Workarea
|
4
4
|
class AfterpayPaymentIntegrationTest < Workarea::TestCase
|
5
|
-
|
6
5
|
def test_auth_capture
|
7
6
|
transaction = tender.build_transaction(action: 'authorize')
|
8
7
|
Payment::Purchase::Afterpay.new(tender, transaction).complete!
|
@@ -21,18 +20,59 @@ module Workarea
|
|
21
20
|
assert(capture_transaction.valid?)
|
22
21
|
end
|
23
22
|
|
23
|
+
def test_capture_decline
|
24
|
+
transaction = tender.build_transaction(action: 'authorize')
|
25
|
+
Payment::Authorize::Afterpay.new(tender, transaction).complete!
|
26
|
+
|
27
|
+
# To force a decline response from capture API
|
28
|
+
transaction.update!(
|
29
|
+
response: ActiveMerchant::Billing::Response.new(
|
30
|
+
true,
|
31
|
+
'test',
|
32
|
+
transaction.response.params.merge('id' => 'declined')
|
33
|
+
)
|
34
|
+
)
|
35
|
+
|
36
|
+
capture = Payment::Capture.new(payment: payment)
|
37
|
+
capture.allocate_amounts!(total: 5.to_m)
|
38
|
+
assert(capture.valid?)
|
39
|
+
refute(capture.complete!)
|
40
|
+
|
41
|
+
capture_transaction = payment.reload.transactions.detect(&:capture?)
|
42
|
+
refute(capture_transaction.success?)
|
43
|
+
assert_equal('DECLINED', capture_transaction.response.params['status'])
|
44
|
+
end
|
45
|
+
|
24
46
|
def test_auth
|
25
47
|
transaction = tender.build_transaction(action: 'authorize')
|
26
48
|
Payment::Authorize::Afterpay.new(tender, transaction).complete!
|
27
49
|
assert(transaction.success?, 'expected transaction to be successful')
|
28
50
|
end
|
29
51
|
|
52
|
+
def test_auth_decline
|
53
|
+
tender.token = 'declined'
|
54
|
+
transaction = tender.build_transaction(action: 'authorize')
|
55
|
+
Payment::Authorize::Afterpay.new(tender, transaction).complete!
|
56
|
+
|
57
|
+
refute(transaction.success?)
|
58
|
+
assert_equal('DECLINED', transaction.response.params['status'])
|
59
|
+
end
|
60
|
+
|
30
61
|
def test_purchase
|
31
62
|
transaction = tender.build_transaction(action: 'purchase')
|
32
63
|
Payment::Purchase::Afterpay.new(tender, transaction).complete!
|
33
64
|
assert(transaction.success?)
|
34
65
|
end
|
35
66
|
|
67
|
+
def test_purchase_decline
|
68
|
+
tender.token = 'declined'
|
69
|
+
transaction = tender.build_transaction(action: 'purchase')
|
70
|
+
Payment::Purchase::Afterpay.new(tender, transaction).complete!
|
71
|
+
|
72
|
+
refute(transaction.success?)
|
73
|
+
assert_equal('DECLINED', transaction.response.params['status'])
|
74
|
+
end
|
75
|
+
|
36
76
|
def test_auth_void
|
37
77
|
transaction = tender.build_transaction(action: 'authorize')
|
38
78
|
operation = Payment::Authorize::Afterpay.new(tender, transaction)
|
@@ -85,7 +125,8 @@ module Workarea
|
|
85
125
|
payment.set_address(first_name: 'Ben', last_name: 'Crouse')
|
86
126
|
|
87
127
|
payment.build_afterpay(
|
88
|
-
token: '12345'
|
128
|
+
token: '12345',
|
129
|
+
amount: 5.to_m
|
89
130
|
)
|
90
131
|
|
91
132
|
payment.afterpay
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workarea-afterpay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Yucis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: workarea
|
@@ -49,7 +49,9 @@ files:
|
|
49
49
|
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
50
50
|
- ".github/ISSUE_TEMPLATE/documentation-request.md"
|
51
51
|
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
52
|
+
- ".github/workflows/ci.yml"
|
52
53
|
- ".gitignore"
|
54
|
+
- ".rubocop.yml"
|
53
55
|
- CHANGELOG.md
|
54
56
|
- CODE_OF_CONDUCT.md
|
55
57
|
- CONTRIBUTING.md
|
@@ -141,7 +143,6 @@ files:
|
|
141
143
|
- test/dummy/config/initializers/inflections.rb
|
142
144
|
- test/dummy/config/initializers/mime_types.rb
|
143
145
|
- test/dummy/config/initializers/new_framework_defaults.rb
|
144
|
-
- test/dummy/config/initializers/session_store.rb
|
145
146
|
- test/dummy/config/initializers/workarea.rb
|
146
147
|
- test/dummy/config/initializers/wrap_parameters.rb
|
147
148
|
- test/dummy/config/locales/en.yml
|
@@ -182,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
183
|
- !ruby/object:Gem::Version
|
183
184
|
version: '0'
|
184
185
|
requirements: []
|
185
|
-
rubygems_version: 3.0.
|
186
|
+
rubygems_version: 3.0.3
|
186
187
|
signing_key:
|
187
188
|
specification_version: 4
|
188
189
|
summary: Workarea Commerce Platform Afterpay integration
|