solidus_paypal_braintree 1.1.0 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +4 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +70 -1
- data/Gemfile +9 -6
- data/app/models/solidus_paypal_braintree/gateway.rb +5 -3
- data/app/models/solidus_paypal_braintree/transaction.rb +2 -2
- data/app/models/solidus_paypal_braintree/transaction_import.rb +2 -2
- data/lib/solidus_paypal_braintree/engine.rb +5 -3
- data/lib/solidus_paypal_braintree/factories.rb +5 -5
- data/lib/solidus_paypal_braintree/version.rb +1 -1
- data/lib/views/frontend/solidus_paypal_braintree/payments/_payment.html.erb +3 -3
- data/solidus_paypal_braintree.gemspec +0 -1
- metadata +4 -122
- data/spec/controllers/solidus_paypal_braintree/checkouts_controller_spec.rb +0 -99
- data/spec/controllers/solidus_paypal_braintree/client_tokens_controller_spec.rb +0 -55
- data/spec/controllers/solidus_paypal_braintree/configurations_controller_spec.rb +0 -73
- data/spec/controllers/solidus_paypal_braintree/transactions_controller_spec.rb +0 -183
- data/spec/features/backend/configuration_spec.rb +0 -23
- data/spec/features/backend/new_payment_spec.rb +0 -137
- data/spec/features/frontend/braintree_credit_card_checkout_spec.rb +0 -191
- data/spec/features/frontend/paypal_checkout_spec.rb +0 -166
- data/spec/features/frontend/venmo_checkout_spec.rb +0 -189
- data/spec/fixtures/cassettes/admin/invalid_credit_card.yml +0 -63
- data/spec/fixtures/cassettes/admin/resubmit_credit_card.yml +0 -352
- data/spec/fixtures/cassettes/admin/valid_credit_card.yml +0 -412
- data/spec/fixtures/cassettes/braintree/create_profile.yml +0 -71
- data/spec/fixtures/cassettes/braintree/generate_token.yml +0 -63
- data/spec/fixtures/cassettes/braintree/token.yml +0 -63
- data/spec/fixtures/cassettes/checkout/invalid_credit_card.yml +0 -63
- data/spec/fixtures/cassettes/checkout/resubmit_credit_card.yml +0 -216
- data/spec/fixtures/cassettes/checkout/update.yml +0 -71
- data/spec/fixtures/cassettes/checkout/valid_credit_card.yml +0 -156
- data/spec/fixtures/cassettes/checkout/valid_venmo_transaction.yml +0 -599
- data/spec/fixtures/cassettes/gateway/authorize/credit_card/address.yml +0 -86
- data/spec/fixtures/cassettes/gateway/authorize/merchant_account/EUR.yml +0 -154
- data/spec/fixtures/cassettes/gateway/authorize/paypal/EUR.yml +0 -90
- data/spec/fixtures/cassettes/gateway/authorize/paypal/address.yml +0 -90
- data/spec/fixtures/cassettes/gateway/authorize.yml +0 -86
- data/spec/fixtures/cassettes/gateway/authorized_transaction.yml +0 -73
- data/spec/fixtures/cassettes/gateway/cancel/missing.yml +0 -63
- data/spec/fixtures/cassettes/gateway/cancel/refunds.yml +0 -272
- data/spec/fixtures/cassettes/gateway/cancel/void.yml +0 -201
- data/spec/fixtures/cassettes/gateway/capture.yml +0 -141
- data/spec/fixtures/cassettes/gateway/complete.yml +0 -157
- data/spec/fixtures/cassettes/gateway/credit.yml +0 -208
- data/spec/fixtures/cassettes/gateway/purchase.yml +0 -87
- data/spec/fixtures/cassettes/gateway/settled_transaction.yml +0 -140
- data/spec/fixtures/cassettes/gateway/void.yml +0 -137
- data/spec/fixtures/cassettes/source/card_type.yml +0 -267
- data/spec/fixtures/cassettes/source/last4.yml +0 -267
- data/spec/fixtures/cassettes/transaction/import/valid/capture.yml +0 -224
- data/spec/fixtures/cassettes/transaction/import/valid.yml +0 -71
- data/spec/fixtures/views/spree/orders/edit.html.erb +0 -50
- data/spec/helpers/solidus_paypal_braintree/braintree_admin_helper_spec.rb +0 -17
- data/spec/helpers/solidus_paypal_braintree/braintree_checkout_helper_spec.rb +0 -70
- data/spec/models/solidus_paypal_braintree/address_spec.rb +0 -71
- data/spec/models/solidus_paypal_braintree/avs_result_spec.rb +0 -317
- data/spec/models/solidus_paypal_braintree/gateway_spec.rb +0 -692
- data/spec/models/solidus_paypal_braintree/response_spec.rb +0 -280
- data/spec/models/solidus_paypal_braintree/source_spec.rb +0 -499
- data/spec/models/solidus_paypal_braintree/transaction_address_spec.rb +0 -235
- data/spec/models/solidus_paypal_braintree/transaction_import_spec.rb +0 -300
- data/spec/models/solidus_paypal_braintree/transaction_spec.rb +0 -85
- data/spec/models/spree/store_spec.rb +0 -14
- data/spec/requests/spree/api/orders_controller_spec.rb +0 -36
- data/spec/spec_helper.rb +0 -29
- data/spec/support/capybara.rb +0 -7
- data/spec/support/factories.rb +0 -2
- data/spec/support/gateway_helpers.rb +0 -29
- data/spec/support/order_ready_for_payment.rb +0 -37
- data/spec/support/vcr.rb +0 -42
- data/spec/support/views.rb +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c020d3e16f7e113ad45cde24ae56a9df9df4eef47bc0698baf745648cd9f279b
|
4
|
+
data.tar.gz: 94214d4a10a14e6a894d32e859d674bb26476f8159e6b6549eb9b8c849d72f8b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f8f74dfa20c79a7c5b2df844260fd57887b4ccf35aa29724e605661d294ff5584eadc236c1d7a4cfc56b2cfff64913b727b9c029765600734c6874a4574fb79
|
7
|
+
data.tar.gz: 6876a643638762d3f6c6d8a915ea1651eea2f928f5ca3f92a59cbc0fcd81ce59d7ee6a688d9587a362bc9e0460efea6e312cd471c81f96fc7e4a797faab3c967
|
data/.circleci/config.yml
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
version: 2.1
|
2
2
|
|
3
3
|
orbs:
|
4
|
+
browser-tools: circleci/browser-tools@1.1
|
5
|
+
|
4
6
|
# Always take the latest version of the orb, this allows us to
|
5
7
|
# run specs against Solidus supported versions only without the need
|
6
8
|
# to change this configuration every time a Solidus version is released
|
@@ -11,10 +13,12 @@ jobs:
|
|
11
13
|
run-specs-with-postgres:
|
12
14
|
executor: solidusio_extensions/postgres
|
13
15
|
steps:
|
16
|
+
- browser-tools/install-browser-tools
|
14
17
|
- solidusio_extensions/run-tests
|
15
18
|
run-specs-with-mysql:
|
16
19
|
executor: solidusio_extensions/mysql
|
17
20
|
steps:
|
21
|
+
- browser-tools/install-browser-tools
|
18
22
|
- solidusio_extensions/run-tests
|
19
23
|
lint-code:
|
20
24
|
executor: solidusio_extensions/sqlite-memory
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,46 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [v1.1.1](https://github.com/solidusio/solidus_paypal_braintree/tree/v1.1.1) (2022-06-30)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/solidusio/solidus_paypal_braintree/compare/v1.1.0...v1.1.1)
|
6
|
+
|
7
|
+
**Closed issues:**
|
8
|
+
|
9
|
+
- StateMachines::InvalidTransition: Cannot transition state via :invalidate from :checkout \(Reason\(s\): Payment method can't be blank\) [\#320](https://github.com/solidusio/solidus_paypal_braintree/issues/320)
|
10
|
+
- Enable Venmo [\#304](https://github.com/solidusio/solidus_paypal_braintree/issues/304)
|
11
|
+
- Make the Venmo button testable from outside US contries [\#303](https://github.com/solidusio/solidus_paypal_braintree/issues/303)
|
12
|
+
|
13
|
+
**Merged pull requests:**
|
14
|
+
|
15
|
+
- Make gem compatible with Rails 7 [\#321](https://github.com/solidusio/solidus_paypal_braintree/pull/321) ([gsmendoza](https://github.com/gsmendoza))
|
16
|
+
- Rubocop -a on spec files [\#317](https://github.com/solidusio/solidus_paypal_braintree/pull/317) ([tvdeyen](https://github.com/tvdeyen))
|
17
|
+
- Add email to Braintree customer [\#310](https://github.com/solidusio/solidus_paypal_braintree/pull/310) ([RyanofWoods](https://github.com/RyanofWoods))
|
18
|
+
|
19
|
+
## [v1.1.0](https://github.com/solidusio/solidus_paypal_braintree/tree/v1.1.0) (2022-02-01)
|
20
|
+
|
21
|
+
[Full Changelog](https://github.com/solidusio/solidus_paypal_braintree/compare/v1.0.0...v1.1.0)
|
22
|
+
|
23
|
+
**Closed issues:**
|
24
|
+
|
25
|
+
- solidus-frontend dependency still exists [\#294](https://github.com/solidusio/solidus_paypal_braintree/issues/294)
|
26
|
+
- Could we get a new release? [\#259](https://github.com/solidusio/solidus_paypal_braintree/issues/259)
|
27
|
+
|
28
|
+
**Merged pull requests:**
|
29
|
+
|
30
|
+
- Lower ActiveRecord::Migration version in add\_paypal\_funding\_source [\#314](https://github.com/solidusio/solidus_paypal_braintree/pull/314) ([mamhoff](https://github.com/mamhoff))
|
31
|
+
- Fix rubocop warnings [\#313](https://github.com/solidusio/solidus_paypal_braintree/pull/313) ([mamhoff](https://github.com/mamhoff))
|
32
|
+
- Add skip\_avs and skip\_cvv AVS Result Mapping [\#312](https://github.com/solidusio/solidus_paypal_braintree/pull/312) ([mamhoff](https://github.com/mamhoff))
|
33
|
+
- Integrate Braintree Venmo [\#311](https://github.com/solidusio/solidus_paypal_braintree/pull/311) ([RyanofWoods](https://github.com/RyanofWoods))
|
34
|
+
- Require MFA for RubyGems actions [\#306](https://github.com/solidusio/solidus_paypal_braintree/pull/306) ([RyanofWoods](https://github.com/RyanofWoods))
|
35
|
+
- Add Venmo as a PayPal funding option for checkout [\#305](https://github.com/solidusio/solidus_paypal_braintree/pull/305) ([RyanofWoods](https://github.com/RyanofWoods))
|
36
|
+
- Update PayPal configuration steps in README [\#300](https://github.com/solidusio/solidus_paypal_braintree/pull/300) ([RyanofWoods](https://github.com/RyanofWoods))
|
37
|
+
- Update to Braintree 3.4.0 [\#299](https://github.com/solidusio/solidus_paypal_braintree/pull/299) ([pelargir](https://github.com/pelargir))
|
38
|
+
- Remove remaining frontend dependencies [\#296](https://github.com/solidusio/solidus_paypal_braintree/pull/296) ([Rtwena](https://github.com/Rtwena))
|
39
|
+
- Set sandbox mode if environment is sandbox [\#291](https://github.com/solidusio/solidus_paypal_braintree/pull/291) ([alexblackie](https://github.com/alexblackie))
|
40
|
+
- Update to Solidus 3.0 [\#286](https://github.com/solidusio/solidus_paypal_braintree/pull/286) ([MinasMazar](https://github.com/MinasMazar))
|
41
|
+
- Added 3ds errors in it locale [\#285](https://github.com/solidusio/solidus_paypal_braintree/pull/285) ([thomasrossetto](https://github.com/thomasrossetto))
|
42
|
+
- Make use of data collector in JS configurable [\#238](https://github.com/solidusio/solidus_paypal_braintree/pull/238) ([mamhoff](https://github.com/mamhoff))
|
43
|
+
|
3
44
|
## [v1.0.0](https://github.com/solidusio/solidus_paypal_braintree/tree/v1.0.0) (2020-11-11)
|
4
45
|
|
5
46
|
[Full Changelog](https://github.com/solidusio/solidus_paypal_braintree/compare/v0.4.0...v1.0.0)
|
@@ -21,7 +62,7 @@
|
|
21
62
|
- On PayPal payment user shipping address gets set with uncorrect firstname and lastname values if they contain a space [\#226](https://github.com/solidusio/solidus_paypal_braintree/issues/226)
|
22
63
|
- Default Braintree configuration on store creation overwrites custom configuration [\#224](https://github.com/solidusio/solidus_paypal_braintree/issues/224)
|
23
64
|
- Undefined local variable or method `id' error on payment page [\#222](https://github.com/solidusio/solidus_paypal_braintree/issues/222)
|
24
|
-
- Can't render JSON about an order as SolidusPaypalBraintree::Source doesn't have a `
|
65
|
+
- Can't render JSON about an order as SolidusPaypalBraintree::Source doesn't have a `expiration_month` method [\#221](https://github.com/solidusio/solidus_paypal_braintree/issues/221)
|
25
66
|
- Paypal payment return invalid address [\#218](https://github.com/solidusio/solidus_paypal_braintree/issues/218)
|
26
67
|
- Random Travis CI Failures [\#215](https://github.com/solidusio/solidus_paypal_braintree/issues/215)
|
27
68
|
- Add Association for spree user to customer [\#210](https://github.com/solidusio/solidus_paypal_braintree/issues/210)
|
@@ -251,7 +292,35 @@
|
|
251
292
|
- Default to US country code [\#32](https://github.com/solidusio/solidus_paypal_braintree/pull/32) ([adammathys](https://github.com/adammathys))
|
252
293
|
- Allow JSON requests to transactions controller [\#31](https://github.com/solidusio/solidus_paypal_braintree/pull/31) ([luukveenis](https://github.com/luukveenis))
|
253
294
|
- Vcr improvements [\#30](https://github.com/solidusio/solidus_paypal_braintree/pull/30) ([cbrunsdon](https://github.com/cbrunsdon))
|
295
|
+
- Only prompt for email for not logged in users [\#29](https://github.com/solidusio/solidus_paypal_braintree/pull/29) ([luukveenis](https://github.com/luukveenis))
|
254
296
|
- Implement API Controller to generate client tokens [\#28](https://github.com/solidusio/solidus_paypal_braintree/pull/28) ([stewart](https://github.com/stewart))
|
297
|
+
- Conditionally load frontend code [\#27](https://github.com/solidusio/solidus_paypal_braintree/pull/27) ([adammathys](https://github.com/adammathys))
|
298
|
+
- Show Source token in source\_view [\#26](https://github.com/solidusio/solidus_paypal_braintree/pull/26) ([stewart](https://github.com/stewart))
|
299
|
+
- Set token on Source when creating customer profile [\#25](https://github.com/solidusio/solidus_paypal_braintree/pull/25) ([stewart](https://github.com/stewart))
|
300
|
+
- Validate address before processing imports [\#24](https://github.com/solidusio/solidus_paypal_braintree/pull/24) ([luukveenis](https://github.com/luukveenis))
|
301
|
+
- Add tests for gateway and source models [\#23](https://github.com/solidusio/solidus_paypal_braintree/pull/23) ([luukveenis](https://github.com/luukveenis))
|
302
|
+
- Raise error for invalid transactions and add specs [\#22](https://github.com/solidusio/solidus_paypal_braintree/pull/22) ([luukveenis](https://github.com/luukveenis))
|
303
|
+
- Save payment type to source [\#21](https://github.com/solidusio/solidus_paypal_braintree/pull/21) ([luukveenis](https://github.com/luukveenis))
|
304
|
+
- Correctly parse error message for failure response [\#20](https://github.com/solidusio/solidus_paypal_braintree/pull/20) ([stewart](https://github.com/stewart))
|
305
|
+
- Upcase country [\#19](https://github.com/solidusio/solidus_paypal_braintree/pull/19) ([cbrunsdon](https://github.com/cbrunsdon))
|
306
|
+
- Add Source View [\#18](https://github.com/solidusio/solidus_paypal_braintree/pull/18) ([stewart](https://github.com/stewart))
|
307
|
+
- Add actions, can\_\*? predicate methods to Source [\#17](https://github.com/solidusio/solidus_paypal_braintree/pull/17) ([stewart](https://github.com/stewart))
|
308
|
+
- End to end transaction [\#16](https://github.com/solidusio/solidus_paypal_braintree/pull/16) ([cbrunsdon](https://github.com/cbrunsdon))
|
309
|
+
- Correct foreign\_key creation for payment\_method reference on Source [\#15](https://github.com/solidusio/solidus_paypal_braintree/pull/15) ([stewart](https://github.com/stewart))
|
310
|
+
- Update Gateway Configuration [\#14](https://github.com/solidusio/solidus_paypal_braintree/pull/14) ([stewart](https://github.com/stewart))
|
311
|
+
- Use Braintree Customer ID, Payment Method ID when creating transactions [\#13](https://github.com/solidusio/solidus_paypal_braintree/pull/13) ([stewart](https://github.com/stewart))
|
312
|
+
- Register gateway with Solidus [\#12](https://github.com/solidusio/solidus_paypal_braintree/pull/12) ([adammathys](https://github.com/adammathys))
|
313
|
+
- Add Gateway\#cancel [\#11](https://github.com/solidusio/solidus_paypal_braintree/pull/11) ([adammathys](https://github.com/adammathys))
|
314
|
+
- Implement Gateway\#create\_profile [\#10](https://github.com/solidusio/solidus_paypal_braintree/pull/10) ([stewart](https://github.com/stewart))
|
315
|
+
- Add option to send extra options to Braintree [\#9](https://github.com/solidusio/solidus_paypal_braintree/pull/9) ([adammathys](https://github.com/adammathys))
|
316
|
+
- Convert cents to dollars [\#8](https://github.com/solidusio/solidus_paypal_braintree/pull/8) ([adammathys](https://github.com/adammathys))
|
317
|
+
- Add ability to capture authorized payments [\#7](https://github.com/solidusio/solidus_paypal_braintree/pull/7) ([adammathys](https://github.com/adammathys))
|
318
|
+
- VCR Fixups [\#6](https://github.com/solidusio/solidus_paypal_braintree/pull/6) ([stewart](https://github.com/stewart))
|
319
|
+
- Add support for refunding payments [\#5](https://github.com/solidusio/solidus_paypal_braintree/pull/5) ([adammathys](https://github.com/adammathys))
|
320
|
+
- Add implementation for authorization transactions [\#4](https://github.com/solidusio/solidus_paypal_braintree/pull/4) ([stewart](https://github.com/stewart))
|
321
|
+
- Implement voiding transactions [\#3](https://github.com/solidusio/solidus_paypal_braintree/pull/3) ([adammathys](https://github.com/adammathys))
|
322
|
+
- Some minor clean-up [\#2](https://github.com/solidusio/solidus_paypal_braintree/pull/2) ([adammathys](https://github.com/adammathys))
|
323
|
+
- FIx Up Test Environment [\#1](https://github.com/solidusio/solidus_paypal_braintree/pull/1) ([stewart](https://github.com/stewart))
|
255
324
|
|
256
325
|
|
257
326
|
|
data/Gemfile
CHANGED
@@ -4,12 +4,15 @@ source 'https://rubygems.org'
|
|
4
4
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
5
5
|
|
6
6
|
branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
|
7
|
-
|
7
|
+
solidus_git, solidus_frontend_git = if (branch == 'master') || (branch >= 'v3.2')
|
8
|
+
%w[solidusio/solidus solidusio/solidus_frontend]
|
9
|
+
else
|
10
|
+
%w[solidusio/solidus] * 2
|
11
|
+
end
|
12
|
+
gem 'solidus', github: solidus_git, branch: branch
|
13
|
+
gem 'solidus_frontend', github: solidus_frontend_git, branch: branch
|
8
14
|
|
9
|
-
|
10
|
-
# otherwise it takes forever to resolve them.
|
11
|
-
# See https://github.com/bundler/bundler/issues/6677
|
12
|
-
gem 'rails', '>0.a'
|
15
|
+
gem 'rails', ENV.fetch('RAILS_VERSION', nil)
|
13
16
|
|
14
17
|
# Provides basic authentication functionality for testing parts of your engine
|
15
18
|
gem 'solidus_auth_devise'
|
@@ -20,7 +23,7 @@ gem 'sassc-rails', platforms: :mri
|
|
20
23
|
|
21
24
|
gem 'bourbon'
|
22
25
|
|
23
|
-
case ENV
|
26
|
+
case ENV.fetch('DB', nil)
|
24
27
|
when 'mysql'
|
25
28
|
gem 'mysql2'
|
26
29
|
when 'postgresql'
|
@@ -11,9 +11,9 @@ module SolidusPaypalBraintree
|
|
11
11
|
# Error message from Braintree that gets returned by a non voidable transaction
|
12
12
|
NON_VOIDABLE_STATUS_ERROR_REGEXP = /can only be voided if status is authorized/.freeze
|
13
13
|
|
14
|
-
TOKEN_GENERATION_DISABLED_MESSAGE = 'Token generation is disabled.' \
|
15
|
-
'
|
16
|
-
'
|
14
|
+
TOKEN_GENERATION_DISABLED_MESSAGE = 'Token generation is disabled. ' \
|
15
|
+
'To re-enable set the `token_generation_enabled` preference on the ' \
|
16
|
+
'gateway to `true`.'
|
17
17
|
|
18
18
|
ALLOWED_BRAINTREE_OPTIONS = [
|
19
19
|
:device_data,
|
@@ -414,6 +414,8 @@ module SolidusPaypalBraintree
|
|
414
414
|
def customer_profile_params(payment)
|
415
415
|
params = {}
|
416
416
|
|
417
|
+
params[:email] = payment&.order&.email
|
418
|
+
|
417
419
|
if store_in_vault && payment.source.try(:nonce)
|
418
420
|
params[:payment_method_nonce] = payment.source.nonce
|
419
421
|
end
|
@@ -18,8 +18,8 @@ module SolidusPaypalBraintree
|
|
18
18
|
errors.add(:payment_method, 'Must be braintree')
|
19
19
|
end
|
20
20
|
if address && !address.valid?
|
21
|
-
address.errors.each do |
|
22
|
-
errors.add(:address,
|
21
|
+
address.errors.each do |error|
|
22
|
+
errors.add(:address, error.full_message)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -12,8 +12,8 @@ module SolidusPaypalBraintree
|
|
12
12
|
errors.add("Address", "is invalid") if address && !address.valid?
|
13
13
|
|
14
14
|
if !transaction.valid?
|
15
|
-
transaction.errors.each do |
|
16
|
-
errors.add(
|
15
|
+
transaction.errors.each do |error|
|
16
|
+
errors.add(error.attribute, error.message)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
errors.none?
|
@@ -19,9 +19,11 @@ module SolidusPaypalBraintree
|
|
19
19
|
end
|
20
20
|
|
21
21
|
initializer "register_solidus_paypal_braintree_gateway", after: "spree.register.payment_methods" do |app|
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
config.to_prepare do
|
23
|
+
app.config.spree.payment_methods << SolidusPaypalBraintree::Gateway
|
24
|
+
SolidusPaypalBraintree::Gateway.allowed_admin_form_preference_types.push(:preference_select).uniq!
|
25
|
+
::Spree::PermittedAttributes.source_attributes.concat([:nonce, :payment_type, :paypal_funding_source]).uniq!
|
26
|
+
end
|
25
27
|
end
|
26
28
|
|
27
29
|
if SolidusSupport.frontend_available?
|
@@ -8,8 +8,8 @@ FactoryBot.define do
|
|
8
8
|
# require 'solidus_paypal_braintree/factories'
|
9
9
|
|
10
10
|
factory :solidus_paypal_braintree_payment_method, class: SolidusPaypalBraintree::Gateway do
|
11
|
-
name 'Solidus PayPal Braintree Gateway'
|
12
|
-
active true
|
11
|
+
name { 'Solidus PayPal Braintree Gateway' }
|
12
|
+
active { true }
|
13
13
|
end
|
14
14
|
|
15
15
|
factory :solidus_paypal_braintree_source, class: SolidusPaypalBraintree::Source do
|
@@ -17,15 +17,15 @@ FactoryBot.define do
|
|
17
17
|
user
|
18
18
|
|
19
19
|
trait :credit_card do
|
20
|
-
payment_type SolidusPaypalBraintree::Source::CREDIT_CARD
|
20
|
+
payment_type { SolidusPaypalBraintree::Source::CREDIT_CARD }
|
21
21
|
end
|
22
22
|
|
23
23
|
trait :paypal do
|
24
|
-
payment_type SolidusPaypalBraintree::Source::PAYPAL
|
24
|
+
payment_type { SolidusPaypalBraintree::Source::PAYPAL }
|
25
25
|
end
|
26
26
|
|
27
27
|
trait :apple_pay do
|
28
|
-
payment_type SolidusPaypalBraintree::Source::APPLE_PAY
|
28
|
+
payment_type { SolidusPaypalBraintree::Source::APPLE_PAY }
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<br />
|
2
|
-
<%= payment.source.display_payment_type %>
|
2
|
+
<%= payment.source.try(:display_payment_type) %>
|
3
3
|
|
4
|
-
<% if payment.source.paypal? %>
|
4
|
+
<% if payment.source.try(:paypal?) %>
|
5
5
|
<% if payment.source.respond_to?(:paypal_funding_source) && payment.source.paypal_funding_source.present? %>
|
6
6
|
<br />
|
7
7
|
<%= t('spree.paypal_funding', funding: payment.source.display_paypal_funding_source) %>
|
8
8
|
<% end %>
|
9
|
-
<% elsif payment.source.venmo? %>
|
9
|
+
<% elsif payment.source.try(:venmo?) %>
|
10
10
|
<br />
|
11
11
|
<%= payment.source.source_description %>
|
12
12
|
<% end %>
|
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = Dir.chdir(File.expand_path(__dir__)) do
|
20
20
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
21
21
|
end
|
22
|
-
s.test_files = Dir['spec/**/*']
|
23
22
|
s.bindir = "exe"
|
24
23
|
s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
24
|
s.require_paths = ["lib"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_paypal_braintree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stembolt
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemerchant
|
@@ -269,65 +269,6 @@ files:
|
|
269
269
|
- lib/views/frontend/spree/checkout/payment/_paypal_braintree.html.erb
|
270
270
|
- lib/views/frontend/spree/shared/_paypal_checkout_button.html.erb
|
271
271
|
- solidus_paypal_braintree.gemspec
|
272
|
-
- spec/controllers/solidus_paypal_braintree/checkouts_controller_spec.rb
|
273
|
-
- spec/controllers/solidus_paypal_braintree/client_tokens_controller_spec.rb
|
274
|
-
- spec/controllers/solidus_paypal_braintree/configurations_controller_spec.rb
|
275
|
-
- spec/controllers/solidus_paypal_braintree/transactions_controller_spec.rb
|
276
|
-
- spec/features/backend/configuration_spec.rb
|
277
|
-
- spec/features/backend/new_payment_spec.rb
|
278
|
-
- spec/features/frontend/braintree_credit_card_checkout_spec.rb
|
279
|
-
- spec/features/frontend/paypal_checkout_spec.rb
|
280
|
-
- spec/features/frontend/venmo_checkout_spec.rb
|
281
|
-
- spec/fixtures/cassettes/admin/invalid_credit_card.yml
|
282
|
-
- spec/fixtures/cassettes/admin/resubmit_credit_card.yml
|
283
|
-
- spec/fixtures/cassettes/admin/valid_credit_card.yml
|
284
|
-
- spec/fixtures/cassettes/braintree/create_profile.yml
|
285
|
-
- spec/fixtures/cassettes/braintree/generate_token.yml
|
286
|
-
- spec/fixtures/cassettes/braintree/token.yml
|
287
|
-
- spec/fixtures/cassettes/checkout/invalid_credit_card.yml
|
288
|
-
- spec/fixtures/cassettes/checkout/resubmit_credit_card.yml
|
289
|
-
- spec/fixtures/cassettes/checkout/update.yml
|
290
|
-
- spec/fixtures/cassettes/checkout/valid_credit_card.yml
|
291
|
-
- spec/fixtures/cassettes/checkout/valid_venmo_transaction.yml
|
292
|
-
- spec/fixtures/cassettes/gateway/authorize.yml
|
293
|
-
- spec/fixtures/cassettes/gateway/authorize/credit_card/address.yml
|
294
|
-
- spec/fixtures/cassettes/gateway/authorize/merchant_account/EUR.yml
|
295
|
-
- spec/fixtures/cassettes/gateway/authorize/paypal/EUR.yml
|
296
|
-
- spec/fixtures/cassettes/gateway/authorize/paypal/address.yml
|
297
|
-
- spec/fixtures/cassettes/gateway/authorized_transaction.yml
|
298
|
-
- spec/fixtures/cassettes/gateway/cancel/missing.yml
|
299
|
-
- spec/fixtures/cassettes/gateway/cancel/refunds.yml
|
300
|
-
- spec/fixtures/cassettes/gateway/cancel/void.yml
|
301
|
-
- spec/fixtures/cassettes/gateway/capture.yml
|
302
|
-
- spec/fixtures/cassettes/gateway/complete.yml
|
303
|
-
- spec/fixtures/cassettes/gateway/credit.yml
|
304
|
-
- spec/fixtures/cassettes/gateway/purchase.yml
|
305
|
-
- spec/fixtures/cassettes/gateway/settled_transaction.yml
|
306
|
-
- spec/fixtures/cassettes/gateway/void.yml
|
307
|
-
- spec/fixtures/cassettes/source/card_type.yml
|
308
|
-
- spec/fixtures/cassettes/source/last4.yml
|
309
|
-
- spec/fixtures/cassettes/transaction/import/valid.yml
|
310
|
-
- spec/fixtures/cassettes/transaction/import/valid/capture.yml
|
311
|
-
- spec/fixtures/views/spree/orders/edit.html.erb
|
312
|
-
- spec/helpers/solidus_paypal_braintree/braintree_admin_helper_spec.rb
|
313
|
-
- spec/helpers/solidus_paypal_braintree/braintree_checkout_helper_spec.rb
|
314
|
-
- spec/models/solidus_paypal_braintree/address_spec.rb
|
315
|
-
- spec/models/solidus_paypal_braintree/avs_result_spec.rb
|
316
|
-
- spec/models/solidus_paypal_braintree/gateway_spec.rb
|
317
|
-
- spec/models/solidus_paypal_braintree/response_spec.rb
|
318
|
-
- spec/models/solidus_paypal_braintree/source_spec.rb
|
319
|
-
- spec/models/solidus_paypal_braintree/transaction_address_spec.rb
|
320
|
-
- spec/models/solidus_paypal_braintree/transaction_import_spec.rb
|
321
|
-
- spec/models/solidus_paypal_braintree/transaction_spec.rb
|
322
|
-
- spec/models/spree/store_spec.rb
|
323
|
-
- spec/requests/spree/api/orders_controller_spec.rb
|
324
|
-
- spec/spec_helper.rb
|
325
|
-
- spec/support/capybara.rb
|
326
|
-
- spec/support/factories.rb
|
327
|
-
- spec/support/gateway_helpers.rb
|
328
|
-
- spec/support/order_ready_for_payment.rb
|
329
|
-
- spec/support/vcr.rb
|
330
|
-
- spec/support/views.rb
|
331
272
|
homepage: https://github.com/solidusio/solidus_paypal_braintree
|
332
273
|
licenses:
|
333
274
|
- BSD-3-Clause
|
@@ -350,67 +291,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
350
291
|
- !ruby/object:Gem::Version
|
351
292
|
version: '0'
|
352
293
|
requirements: []
|
353
|
-
rubygems_version: 3.2.
|
294
|
+
rubygems_version: 3.2.32
|
354
295
|
signing_key:
|
355
296
|
specification_version: 4
|
356
297
|
summary: Officially supported Paypal/Braintree extension
|
357
|
-
test_files:
|
358
|
-
- spec/spec_helper.rb
|
359
|
-
- spec/features/frontend/venmo_checkout_spec.rb
|
360
|
-
- spec/features/frontend/braintree_credit_card_checkout_spec.rb
|
361
|
-
- spec/features/frontend/paypal_checkout_spec.rb
|
362
|
-
- spec/features/backend/configuration_spec.rb
|
363
|
-
- spec/features/backend/new_payment_spec.rb
|
364
|
-
- spec/models/solidus_paypal_braintree/transaction_import_spec.rb
|
365
|
-
- spec/models/solidus_paypal_braintree/gateway_spec.rb
|
366
|
-
- spec/models/solidus_paypal_braintree/transaction_address_spec.rb
|
367
|
-
- spec/models/solidus_paypal_braintree/transaction_spec.rb
|
368
|
-
- spec/models/solidus_paypal_braintree/source_spec.rb
|
369
|
-
- spec/models/solidus_paypal_braintree/avs_result_spec.rb
|
370
|
-
- spec/models/solidus_paypal_braintree/response_spec.rb
|
371
|
-
- spec/models/solidus_paypal_braintree/address_spec.rb
|
372
|
-
- spec/models/spree/store_spec.rb
|
373
|
-
- spec/requests/spree/api/orders_controller_spec.rb
|
374
|
-
- spec/support/capybara.rb
|
375
|
-
- spec/support/views.rb
|
376
|
-
- spec/support/vcr.rb
|
377
|
-
- spec/support/gateway_helpers.rb
|
378
|
-
- spec/support/factories.rb
|
379
|
-
- spec/support/order_ready_for_payment.rb
|
380
|
-
- spec/fixtures/cassettes/transaction/import/valid.yml
|
381
|
-
- spec/fixtures/cassettes/transaction/import/valid/capture.yml
|
382
|
-
- spec/fixtures/cassettes/braintree/create_profile.yml
|
383
|
-
- spec/fixtures/cassettes/braintree/generate_token.yml
|
384
|
-
- spec/fixtures/cassettes/braintree/token.yml
|
385
|
-
- spec/fixtures/cassettes/source/last4.yml
|
386
|
-
- spec/fixtures/cassettes/source/card_type.yml
|
387
|
-
- spec/fixtures/cassettes/admin/valid_credit_card.yml
|
388
|
-
- spec/fixtures/cassettes/admin/invalid_credit_card.yml
|
389
|
-
- spec/fixtures/cassettes/admin/resubmit_credit_card.yml
|
390
|
-
- spec/fixtures/cassettes/checkout/valid_credit_card.yml
|
391
|
-
- spec/fixtures/cassettes/checkout/invalid_credit_card.yml
|
392
|
-
- spec/fixtures/cassettes/checkout/update.yml
|
393
|
-
- spec/fixtures/cassettes/checkout/resubmit_credit_card.yml
|
394
|
-
- spec/fixtures/cassettes/checkout/valid_venmo_transaction.yml
|
395
|
-
- spec/fixtures/cassettes/gateway/cancel/missing.yml
|
396
|
-
- spec/fixtures/cassettes/gateway/cancel/refunds.yml
|
397
|
-
- spec/fixtures/cassettes/gateway/cancel/void.yml
|
398
|
-
- spec/fixtures/cassettes/gateway/capture.yml
|
399
|
-
- spec/fixtures/cassettes/gateway/settled_transaction.yml
|
400
|
-
- spec/fixtures/cassettes/gateway/authorized_transaction.yml
|
401
|
-
- spec/fixtures/cassettes/gateway/void.yml
|
402
|
-
- spec/fixtures/cassettes/gateway/credit.yml
|
403
|
-
- spec/fixtures/cassettes/gateway/authorize.yml
|
404
|
-
- spec/fixtures/cassettes/gateway/authorize/credit_card/address.yml
|
405
|
-
- spec/fixtures/cassettes/gateway/authorize/paypal/EUR.yml
|
406
|
-
- spec/fixtures/cassettes/gateway/authorize/paypal/address.yml
|
407
|
-
- spec/fixtures/cassettes/gateway/authorize/merchant_account/EUR.yml
|
408
|
-
- spec/fixtures/cassettes/gateway/complete.yml
|
409
|
-
- spec/fixtures/cassettes/gateway/purchase.yml
|
410
|
-
- spec/fixtures/views/spree/orders/edit.html.erb
|
411
|
-
- spec/controllers/solidus_paypal_braintree/configurations_controller_spec.rb
|
412
|
-
- spec/controllers/solidus_paypal_braintree/transactions_controller_spec.rb
|
413
|
-
- spec/controllers/solidus_paypal_braintree/client_tokens_controller_spec.rb
|
414
|
-
- spec/controllers/solidus_paypal_braintree/checkouts_controller_spec.rb
|
415
|
-
- spec/helpers/solidus_paypal_braintree/braintree_admin_helper_spec.rb
|
416
|
-
- spec/helpers/solidus_paypal_braintree/braintree_checkout_helper_spec.rb
|
298
|
+
test_files: []
|
@@ -1,99 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'support/order_ready_for_payment'
|
3
|
-
|
4
|
-
RSpec.describe SolidusPaypalBraintree::CheckoutsController, type: :controller do
|
5
|
-
routes { SolidusPaypalBraintree::Engine.routes }
|
6
|
-
|
7
|
-
include_context 'when order is ready for payment'
|
8
|
-
|
9
|
-
describe 'PATCH update' do
|
10
|
-
subject(:patch_update) { patch :update, params: params }
|
11
|
-
|
12
|
-
let(:params) do
|
13
|
-
{
|
14
|
-
"state" => "payment",
|
15
|
-
"order" => {
|
16
|
-
"payments_attributes" => [
|
17
|
-
{
|
18
|
-
"payment_method_id" => payment_method.id,
|
19
|
-
"source_attributes" => {
|
20
|
-
"nonce" => "fake-paypal-billing-agreement-nonce",
|
21
|
-
"payment_type" => SolidusPaypalBraintree::Source::PAYPAL
|
22
|
-
}
|
23
|
-
}
|
24
|
-
],
|
25
|
-
"use_billing" => "1",
|
26
|
-
"use_postmates_shipping" => "0"
|
27
|
-
},
|
28
|
-
"reuse_credit" => "1",
|
29
|
-
"order_bill_address" => "",
|
30
|
-
"reuse_bill_address" => "1"
|
31
|
-
}
|
32
|
-
end
|
33
|
-
|
34
|
-
let!(:payment_method) do
|
35
|
-
create_gateway
|
36
|
-
end
|
37
|
-
|
38
|
-
before do
|
39
|
-
allow(controller).to receive(:try_spree_current_user) { user }
|
40
|
-
allow(controller).to receive(:spree_current_user) { user }
|
41
|
-
allow(controller).to receive(:current_order) { order }
|
42
|
-
end
|
43
|
-
|
44
|
-
context "when a payment is created successfully", vcr: {
|
45
|
-
cassette_name: 'checkout/update',
|
46
|
-
match_requests_on: [:braintree_uri]
|
47
|
-
} do
|
48
|
-
it 'creates a payment' do
|
49
|
-
expect { patch_update }.
|
50
|
-
to change { order.payments.count }.
|
51
|
-
from(0).
|
52
|
-
to(1)
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'creates a payment source' do
|
56
|
-
expect { patch_update }.
|
57
|
-
to change { SolidusPaypalBraintree::Source.count }.
|
58
|
-
from(0).
|
59
|
-
to(1)
|
60
|
-
end
|
61
|
-
|
62
|
-
it 'assigns @order' do
|
63
|
-
patch_update
|
64
|
-
expect(assigns(:order)).to eq order
|
65
|
-
end
|
66
|
-
|
67
|
-
it "is successful" do
|
68
|
-
expect(patch_update).to be_successful
|
69
|
-
end
|
70
|
-
|
71
|
-
it "renders 'ok'" do
|
72
|
-
expect(patch_update.body).to eql("ok")
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
context "when a payment is not created successfully" do
|
77
|
-
before do
|
78
|
-
allow_any_instance_of(::Spree::Payment).to receive(:save).and_return(false)
|
79
|
-
end
|
80
|
-
|
81
|
-
# No idea why this is the case, but I'm just adding the tests here
|
82
|
-
it "is successful" do
|
83
|
-
expect(patch_update).to be_successful
|
84
|
-
end
|
85
|
-
|
86
|
-
it "renders 'not-ok'" do
|
87
|
-
expect(patch_update.body).to eq('not-ok')
|
88
|
-
end
|
89
|
-
|
90
|
-
it "does not change the number of payments in the system" do
|
91
|
-
expect{ patch_update }.not_to(change{ ::Spree::Payment.count })
|
92
|
-
end
|
93
|
-
|
94
|
-
it "does not change the number of sources in the system" do
|
95
|
-
expect{ patch_update }.not_to(change{ SolidusPaypalBraintree::Source.count })
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe SolidusPaypalBraintree::ClientTokensController do
|
4
|
-
routes { SolidusPaypalBraintree::Engine.routes }
|
5
|
-
|
6
|
-
cassette_options = { cassette_name: "braintree/token" }
|
7
|
-
describe "POST create", vcr: cassette_options do
|
8
|
-
let!(:gateway) { create_gateway }
|
9
|
-
let(:user) { create(:user) }
|
10
|
-
let(:json) { JSON.parse(response.body) }
|
11
|
-
|
12
|
-
before { user.generate_spree_api_key! }
|
13
|
-
|
14
|
-
context 'without a payment method id' do
|
15
|
-
subject(:response) do
|
16
|
-
post :create, params: { token: user.spree_api_key }
|
17
|
-
end
|
18
|
-
|
19
|
-
it "returns a client token", aggregate_failures: true do
|
20
|
-
expect(response).to have_http_status(:success)
|
21
|
-
expect(response.content_type).to include 'application/json'
|
22
|
-
expect(json["client_token"]).to be_present
|
23
|
-
expect(json["client_token"]).to be_a String
|
24
|
-
expect(json["payment_method_id"]).to eq gateway.id
|
25
|
-
end
|
26
|
-
|
27
|
-
context "when there's two gateway's for different stores" do
|
28
|
-
let!(:store1) { create(:store, code: 'store_1') }
|
29
|
-
let!(:store2) { create(:store, code: 'store_2') }
|
30
|
-
let!(:gateway_for_store1) { create_gateway.tap{ |gw| store1.payment_methods << gw } }
|
31
|
-
let!(:gateway_for_store2) { create_gateway.tap{ |gw| store2.payment_methods << gw } }
|
32
|
-
|
33
|
-
it "returns the correct gateway for store1" do
|
34
|
-
allow_any_instance_of(described_class).to receive(:current_store).and_return store1
|
35
|
-
expect(json["payment_method_id"]).to eq gateway_for_store1.id
|
36
|
-
end
|
37
|
-
|
38
|
-
it "returns the correct gateway for store2" do
|
39
|
-
allow_any_instance_of(described_class).to receive(:current_store).and_return store2
|
40
|
-
expect(json["payment_method_id"]).to eq gateway_for_store2.id
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
context 'with a payment method id' do
|
46
|
-
subject(:response) do
|
47
|
-
post :create, params: { token: user.spree_api_key, payment_method_id: gateway.id }
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'uses the selected gateway' do
|
51
|
-
expect(json["payment_method_id"]).to eq gateway.id
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|