solidus_paypal_commerce_platform 0.0.1 → 0.3.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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.github/stale.yml +4 -4
  3. data/.github_changelog_generator +2 -0
  4. data/.rubocop.yml +18 -5
  5. data/CHANGELOG.md +181 -0
  6. data/README.md +49 -28
  7. data/app/assets/javascripts/spree/frontend/solidus_paypal_commerce_platform/button_actions.js +14 -4
  8. data/app/assets/javascripts/spree/frontend/solidus_paypal_commerce_platform/buttons.js +6 -3
  9. data/app/controllers/solidus_paypal_commerce_platform/orders_controller.rb +8 -5
  10. data/app/controllers/solidus_paypal_commerce_platform/paypal_orders_controller.rb +3 -1
  11. data/app/decorators/models/solidus_paypal_commerce_platform/spree/address_decorator.rb +17 -0
  12. data/app/jobs/solidus_paypal_commerce_platform/webhook_job.rb +3 -3
  13. data/app/models/solidus_paypal_commerce_platform/gateway.rb +1 -2
  14. data/app/models/solidus_paypal_commerce_platform/payment_method.rb +4 -1
  15. data/app/models/solidus_paypal_commerce_platform/paypal_address.rb +27 -23
  16. data/app/models/solidus_paypal_commerce_platform/paypal_order.rb +3 -3
  17. data/app/models/solidus_paypal_commerce_platform/pricing_options.rb +1 -1
  18. data/app/models/solidus_paypal_commerce_platform/state_guesser.rb +28 -0
  19. data/bin/rails-sandbox +1 -3
  20. data/bin/sandbox +2 -2
  21. data/lib/generators/solidus_paypal_commerce_platform/install/install_generator.rb +14 -5
  22. data/lib/generators/solidus_paypal_commerce_platform/install/templates/initializer.rb +6 -0
  23. data/lib/solidus_paypal_commerce_platform.rb +7 -5
  24. data/lib/solidus_paypal_commerce_platform/client.rb +5 -4
  25. data/lib/solidus_paypal_commerce_platform/configuration.rb +14 -4
  26. data/lib/solidus_paypal_commerce_platform/{factories.rb → testing_support/factories.rb} +0 -0
  27. data/lib/solidus_paypal_commerce_platform/version.rb +1 -1
  28. data/lib/views/frontend/solidus_paypal_commerce_platform/shared/_javascript_sdk_tag.html.erb +6 -0
  29. data/lib/views/frontend/spree/checkout/payment/_paypal_commerce_platform.html.erb +6 -1
  30. data/lib/views/frontend/spree/orders/payment/_paypal_commerce_platform.html.erb +3 -2
  31. data/lib/views/frontend/spree/products/payment/_paypal_commerce_platform.html.erb +3 -2
  32. data/solidus_paypal_commerce_platform.gemspec +7 -6
  33. data/spec/features/frontend/cart_spec.rb +21 -13
  34. data/spec/features/frontend/checkout_spec.rb +21 -13
  35. data/spec/features/frontend/product_spec.rb +27 -15
  36. data/spec/lib/solidus_paypal_commerce_platform/client_spec.rb +1 -1
  37. data/spec/lib/solidus_paypal_commerce_platform/configuration_spec.rb +28 -4
  38. data/spec/models/solidus_paypal_commerce_platform/payment_method_spec.rb +19 -0
  39. data/spec/models/solidus_paypal_commerce_platform/paypal_address_spec.rb +17 -5
  40. data/spec/models/solidus_paypal_commerce_platform/state_guesser_spec.rb +38 -0
  41. data/spec/requests/solidus_paypal_commerce_platform/orders_controller_spec.rb +2 -2
  42. data/spec/requests/solidus_paypal_commerce_platform/shipping_rates_controller_spec.rb +3 -3
  43. data/spec/requests/solidus_paypal_commerce_platform/wizard_controller_spec.rb +1 -1
  44. data/spec/spec_helper.rb +10 -8
  45. data/spec/support/capybara.rb +11 -0
  46. data/spec/support/paypal_sdk_script_tag_helper.rb +13 -0
  47. metadata +46 -15
  48. data/app/decorators/solidus_paypal_commerce_platform/remove_required_phone_from_address.rb +0 -13
@@ -23,9 +23,9 @@ RSpec.describe SolidusPaypalCommercePlatform::ShippingRatesController, type: :re
23
23
  }
24
24
  end
25
25
 
26
- it "returns a paypal_order with the new address" do
27
- expect(response.body).to include new_address.state.abbr
28
- expect(response.body).not_to include order.ship_address.state.abbr
26
+ it "returns a paypal_order without the simulated address" do
27
+ expect(response.body).not_to include "admin_area_1\":\"#{new_address.state.abbr}\""
28
+ expect(response.body).not_to include "admin_area_1\":\"#{order.ship_address.state.abbr}\""
29
29
  end
30
30
 
31
31
  it "does not modify original address" do
@@ -38,7 +38,7 @@ RSpec.describe SolidusPaypalCommercePlatform::WizardController, type: :request d
38
38
 
39
39
  expect(payment_method.preferred_client_id).to eq("CLIENT-ID")
40
40
  expect(payment_method.preferred_client_secret).to eq("CLIENT-SECRET")
41
- expect(response).to have_http_status(201)
41
+ expect(response).to have_http_status(:created)
42
42
  end
43
43
  end
44
44
  end
data/spec/spec_helper.rb CHANGED
@@ -7,11 +7,9 @@ ENV['RAILS_ENV'] = 'test'
7
7
  require 'solidus_dev_support/rspec/coverage'
8
8
 
9
9
  # Create the dummy app if it's still missing.
10
- dummy_app_environment = File.expand_path('dummy/config/environment.rb', __dir__).tap do |file|
11
- system 'bin/rake extension:test_app' unless File.exist? file
12
- end
13
-
14
- require dummy_app_environment
10
+ dummy_env = "#{__dir__}/dummy/config/environment.rb"
11
+ system 'bin/rake extension:test_app' unless File.exist? dummy_env
12
+ require dummy_env
15
13
 
16
14
  # Requires factories and other useful helpers defined in spree_core.
17
15
  require 'solidus_dev_support/rspec/feature_helper'
@@ -19,12 +17,16 @@ require 'spree/testing_support/order_walkthrough'
19
17
 
20
18
  # Requires supporting ruby files with custom matchers and macros, etc,
21
19
  # in spec/support/ and its subdirectories.
22
- Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
20
+ Dir["#{__dir__}/support/**/*.rb"].sort.each { |f| require f }
23
21
 
24
- # Requires factories defined in lib/solidus_paypal_commerce_platform/factories.rb
25
- require 'solidus_paypal_commerce_platform/factories'
22
+ # Requires factories defined in lib/solidus_paypal_commerce_platform/testing_support/factories.rb
23
+ SolidusDevSupport::TestingSupport::Factories.load_for(SolidusPaypalCommercePlatform::Engine)
26
24
 
27
25
  RSpec.configure do |config|
28
26
  config.infer_spec_type_from_file_location!
29
27
  config.use_transactional_fixtures = false
28
+
29
+ if Spree.solidus_gem_version < Gem::Version.new('2.11')
30
+ config.extend Spree::TestingSupport::AuthorizationHelpers::Request, type: :system
31
+ end
30
32
  end
@@ -0,0 +1,11 @@
1
+ require "capybara/cuprite"
2
+
3
+ Capybara.javascript_driver = :cuprite
4
+
5
+ Capybara.register_driver(:cuprite) do |app|
6
+ # Set `export INSPECTOR=true` and add `page.driver.debug(binding)` to open a Chrome tab
7
+ # to debug the browser status.
8
+ #
9
+ # See also: https://github.com/rubycdp/cuprite#debugging
10
+ Capybara::Cuprite::Driver.new(app, window_size: [1920, 1080], inspector: ENV["INSPECTOR"])
11
+ end
@@ -0,0 +1,13 @@
1
+ module PaypalSdkScriptTagHelper
2
+ def js_sdk_script_query
3
+ URI(page.find('script[src*="sdk/js?"]', visible: false)[:src]).query.split('&')
4
+ end
5
+
6
+ def js_sdk_script_partner_id
7
+ page.find('script[src*="sdk/js?"]', visible: false)['data-partner-attribution-id']
8
+ end
9
+ end
10
+
11
+ RSpec.configure do |config|
12
+ config.include PaypalSdkScriptTagHelper, type: :feature
13
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_paypal_commerce_platform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Denny
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-08-10 00:00:00.000000000 Z
12
+ date: 2021-03-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: deface
@@ -49,30 +49,36 @@ dependencies:
49
49
  name: solidus_support
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 0.8.0
55
+ - - "<"
53
56
  - !ruby/object:Gem::Version
54
- version: '0.5'
57
+ version: '1'
55
58
  type: :runtime
56
59
  prerelease: false
57
60
  version_requirements: !ruby/object:Gem::Requirement
58
61
  requirements:
59
- - - "~>"
62
+ - - ">="
60
63
  - !ruby/object:Gem::Version
61
- version: '0.5'
64
+ version: 0.8.0
65
+ - - "<"
66
+ - !ruby/object:Gem::Version
67
+ version: '1'
62
68
  - !ruby/object:Gem::Dependency
63
69
  name: solidus_webhooks
64
70
  requirement: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: 0.2.0
74
+ version: '0.2'
69
75
  type: :runtime
70
76
  prerelease: false
71
77
  version_requirements: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: 0.2.0
81
+ version: '0.2'
76
82
  - !ruby/object:Gem::Dependency
77
83
  name: paypal-checkout-sdk
78
84
  requirement: !ruby/object:Gem::Requirement
@@ -88,7 +94,7 @@ dependencies:
88
94
  - !ruby/object:Gem::Version
89
95
  version: '0'
90
96
  - !ruby/object:Gem::Dependency
91
- name: solidus_dev_support
97
+ name: cuprite
92
98
  requirement: !ruby/object:Gem::Requirement
93
99
  requirements:
94
100
  - - ">="
@@ -101,6 +107,20 @@ dependencies:
101
107
  - - ">="
102
108
  - !ruby/object:Gem::Version
103
109
  version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: solidus_dev_support
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '2.1'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '2.1'
104
124
  description:
105
125
  email: contact@solidus.io
106
126
  executables: []
@@ -110,9 +130,11 @@ files:
110
130
  - ".circleci/config.yml"
111
131
  - ".gem_release.yml"
112
132
  - ".github/stale.yml"
133
+ - ".github_changelog_generator"
113
134
  - ".gitignore"
114
135
  - ".rspec"
115
136
  - ".rubocop.yml"
137
+ - CHANGELOG.md
116
138
  - Gemfile
117
139
  - LICENSE
118
140
  - README.md
@@ -131,7 +153,7 @@ files:
131
153
  - app/controllers/solidus_paypal_commerce_platform/paypal_orders_controller.rb
132
154
  - app/controllers/solidus_paypal_commerce_platform/shipping_rates_controller.rb
133
155
  - app/controllers/solidus_paypal_commerce_platform/wizard_controller.rb
134
- - app/decorators/solidus_paypal_commerce_platform/remove_required_phone_from_address.rb
156
+ - app/decorators/models/solidus_paypal_commerce_platform/spree/address_decorator.rb
135
157
  - app/helpers/solidus_paypal_commerce_platform/button_options_helper.rb
136
158
  - app/jobs/solidus_paypal_commerce_platform/application_job.rb
137
159
  - app/jobs/solidus_paypal_commerce_platform/webhook_job.rb
@@ -141,6 +163,7 @@ files:
141
163
  - app/models/solidus_paypal_commerce_platform/paypal_address.rb
142
164
  - app/models/solidus_paypal_commerce_platform/paypal_order.rb
143
165
  - app/models/solidus_paypal_commerce_platform/pricing_options.rb
166
+ - app/models/solidus_paypal_commerce_platform/state_guesser.rb
144
167
  - app/models/solidus_paypal_commerce_platform/wizard.rb
145
168
  - app/overrides/spree/admin/payment_methods/form/insert_email_verification_notification.rb
146
169
  - app/overrides/spree/admin/payment_methods/index/insert_setup_wizards.rb
@@ -164,13 +187,14 @@ files:
164
187
  - config/routes.rb
165
188
  - db/migrate/20200521190038_add_paypal_commerce_platform_sources.rb
166
189
  - lib/generators/solidus_paypal_commerce_platform/install/install_generator.rb
190
+ - lib/generators/solidus_paypal_commerce_platform/install/templates/initializer.rb
167
191
  - lib/solidus_paypal_commerce_platform.rb
168
192
  - lib/solidus_paypal_commerce_platform/access_token_authorization_request.rb
169
193
  - lib/solidus_paypal_commerce_platform/client.rb
170
194
  - lib/solidus_paypal_commerce_platform/configuration.rb
171
195
  - lib/solidus_paypal_commerce_platform/engine.rb
172
- - lib/solidus_paypal_commerce_platform/factories.rb
173
196
  - lib/solidus_paypal_commerce_platform/fetch_merchant_credentials_request.rb
197
+ - lib/solidus_paypal_commerce_platform/testing_support/factories.rb
174
198
  - lib/solidus_paypal_commerce_platform/version.rb
175
199
  - lib/views/api/spree/api/payments/source_views/_paypal_commerce_platform.json.jbuilder
176
200
  - lib/views/backend/spree/admin/payments/source_forms/_paypal_commerce_platform.html.erb
@@ -179,6 +203,7 @@ files:
179
203
  - lib/views/frontend/solidus_paypal_commerce_platform/cart/_cart_buttons.html.erb
180
204
  - lib/views/frontend/solidus_paypal_commerce_platform/payments/_payment.html.erb
181
205
  - lib/views/frontend/solidus_paypal_commerce_platform/product/_product_buttons.html.erb
206
+ - lib/views/frontend/solidus_paypal_commerce_platform/shared/_javascript_sdk_tag.html.erb
182
207
  - lib/views/frontend/spree/checkout/payment/_paypal_commerce_platform.html.erb
183
208
  - lib/views/frontend/spree/orders/payment/_paypal_commerce_platform.html.erb
184
209
  - lib/views/frontend/spree/products/payment/_paypal_commerce_platform.html.erb
@@ -201,18 +226,21 @@ files:
201
226
  - spec/models/solidus_paypal_commerce_platform/payment_method_spec.rb
202
227
  - spec/models/solidus_paypal_commerce_platform/payment_source_spec.rb
203
228
  - spec/models/solidus_paypal_commerce_platform/paypal_address_spec.rb
229
+ - spec/models/solidus_paypal_commerce_platform/state_guesser_spec.rb
204
230
  - spec/models/solidus_paypal_commerce_platform/wizard_spec.rb
205
231
  - spec/requests/solidus_paypal_commerce_platform/orders_controller_spec.rb
206
232
  - spec/requests/solidus_paypal_commerce_platform/shipping_rates_controller_spec.rb
207
233
  - spec/requests/solidus_paypal_commerce_platform/wizard_controller_spec.rb
208
234
  - spec/spec_helper.rb
209
- homepage: https://github.com/nebulab/solidus_paypal_commerce_platform#readme
235
+ - spec/support/capybara.rb
236
+ - spec/support/paypal_sdk_script_tag_helper.rb
237
+ homepage: https://github.com/solidusio-contrib/solidus_paypal_commerce_platform
210
238
  licenses:
211
239
  - BSD-3-Clause
212
240
  metadata:
213
- homepage_uri: https://github.com/nebulab/solidus_paypal_commerce_platform#readme
214
- source_code_uri: https://github.com/nebulab/solidus_paypal_commerce_platform
215
- changelog_uri: https://github.com/nebulab/solidus_paypal_commerce_platform/releases
241
+ homepage_uri: https://github.com/solidusio-contrib/solidus_paypal_commerce_platform
242
+ source_code_uri: https://github.com/solidusio-contrib/solidus_paypal_commerce_platform
243
+ changelog_uri: https://github.com/solidusio-contrib/solidus_paypal_commerce_platform/releases
216
244
  post_install_message:
217
245
  rdoc_options: []
218
246
  require_paths:
@@ -251,8 +279,11 @@ test_files:
251
279
  - spec/models/solidus_paypal_commerce_platform/payment_method_spec.rb
252
280
  - spec/models/solidus_paypal_commerce_platform/payment_source_spec.rb
253
281
  - spec/models/solidus_paypal_commerce_platform/paypal_address_spec.rb
282
+ - spec/models/solidus_paypal_commerce_platform/state_guesser_spec.rb
254
283
  - spec/models/solidus_paypal_commerce_platform/wizard_spec.rb
255
284
  - spec/requests/solidus_paypal_commerce_platform/orders_controller_spec.rb
256
285
  - spec/requests/solidus_paypal_commerce_platform/shipping_rates_controller_spec.rb
257
286
  - spec/requests/solidus_paypal_commerce_platform/wizard_controller_spec.rb
258
287
  - spec/spec_helper.rb
288
+ - spec/support/capybara.rb
289
+ - spec/support/paypal_sdk_script_tag_helper.rb
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RemoveRequiredPhoneFromAddress
4
- # PayPal doesn't use the phone number, so in cases where the user checks out via
5
- # PayPal, this field will be unpopulated. If you want to require phone numbers,
6
- # you'll need to turn off cart & product page displays on the payment method edit
7
- # page.
8
- def require_phone?
9
- super && false
10
- end
11
-
12
- ::Spree::Address.prepend self
13
- end