solidus_paypal_commerce_platform 0.0.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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