workarea-afterpay 2.1.0 → 2.1.1
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/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
|