solidus_frontend 2.8.1 → 2.8.6

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.

Potentially problematic release.


This version of solidus_frontend might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3d58b19164b14b54782c486a6b414157b30bc215e7393dcabaa532e9e2c8199f
4
- data.tar.gz: 12ae99c697e4ea67551ba4643e5399cf57945daeadba5a7d50cdbeb2f7530a1d
3
+ metadata.gz: 1daacac80ac7da26b638ae0c7a23783bea3e7f0ee82b3d7453b2c6ec8b2543e5
4
+ data.tar.gz: 93ec515cdff1099ac11b27fcd2c740891c31f3f6569d45868a32d0d3690776e6
5
5
  SHA512:
6
- metadata.gz: f198566a311967226eeba0cd12642628e557cd6d8789b4e9abbe27ede137fac39478b9c1ff474973b59ff3c98005408f5f1540f83c8a6ff9ac9bcb42a51afe51
7
- data.tar.gz: 3024592840089172c0751917f8bccd96698e164ad842d1193ec9332d6a5eadfa35f9c25694000ab5129c73f5cc8f49906d88e924249f8cb68e262d8e34a5ca19
6
+ metadata.gz: e7ae3f703517879888b4b079a10443471eebc752080901f7ce79d0e34efda6226ac966ba8103452adfb70f6a379684e44a6fffdd4e6bbe8ded2235d350260393
7
+ data.tar.gz: d7e3b788e0891df7ca97958055e5927b4e95e6739b5ce4e8f0f4b61e69c49570a156b9941cc41df2e49aa923b5921daa6dee1696ad090ed5805676913c5213e9
@@ -17,7 +17,7 @@ module Spree
17
17
 
18
18
  before_action :associate_user
19
19
  before_action :check_authorization
20
- before_action :apply_coupon_code
20
+ before_action :apply_coupon_code, only: [:update]
21
21
 
22
22
  before_action :setup_for_current_state, only: [:edit, :update]
23
23
 
@@ -87,11 +87,23 @@ module Spree
87
87
  end
88
88
 
89
89
  def update_params
90
- if update_params = massaged_params[:order]
91
- update_params.permit(permitted_checkout_attributes)
90
+ case params[:state].to_sym
91
+ when :address
92
+ massaged_params.require(:order).permit(
93
+ permitted_checkout_address_attributes
94
+ )
95
+ when :delivery
96
+ massaged_params.require(:order).permit(
97
+ permitted_checkout_delivery_attributes
98
+ )
99
+ when :payment
100
+ massaged_params.require(:order).permit(
101
+ permitted_checkout_payment_attributes
102
+ )
92
103
  else
93
- # We currently allow update requests without any parameters in them.
94
- {}
104
+ massaged_params.fetch(:order, {}).permit(
105
+ permitted_checkout_confirm_attributes
106
+ )
95
107
  end
96
108
  end
97
109
 
@@ -68,7 +68,7 @@ describe Spree::CheckoutController, type: :controller do
68
68
  it 'should check if the user is authorized for :edit' do
69
69
  expect(controller).to receive(:authorize!).with(:edit, order, token)
70
70
  request.cookie_jar.signed[:guest_token] = token
71
- post :update, params: { state: 'address' }
71
+ post :update, params: { state: 'address', order: { bill_address_attributes: address_params } }
72
72
  end
73
73
 
74
74
  context "save successful" do
@@ -96,7 +96,7 @@ describe Spree::CheckoutController, type: :controller do
96
96
  end
97
97
 
98
98
  it "should assign order" do
99
- post :update, params: { state: "address" }
99
+ post :update, params: { state: "address", order: { bill_address_attributes: address_params } }
100
100
  expect(assigns[:order]).not_to be_nil
101
101
  end
102
102
 
@@ -271,6 +271,31 @@ describe Spree::CheckoutController, type: :controller do
271
271
  expect(order.payments).to be_empty
272
272
  end
273
273
  end
274
+
275
+ context 'trying to change the address' do
276
+ let(:params) do
277
+ {
278
+ state: 'payment',
279
+ order: {
280
+ payments_attributes: [
281
+ {
282
+ payment_method_id: payment_method.id.to_s,
283
+ source_attributes: attributes_for(:credit_card)
284
+ }
285
+ ],
286
+ ship_address_attributes: {
287
+ zipcode: 'TEST'
288
+ }
289
+ }
290
+ }
291
+ end
292
+
293
+ it 'does not change the address' do
294
+ expect do
295
+ post :update, params: params
296
+ end.not_to change { order.reload.ship_address.zipcode }
297
+ end
298
+ end
274
299
  end
275
300
 
276
301
  context "when in the confirm state" do
@@ -310,16 +335,18 @@ describe Spree::CheckoutController, type: :controller do
310
335
  end
311
336
 
312
337
  it "should not assign order" do
313
- post :update, params: { state: "address", email: '' }
338
+ post :update, params: { state: "address", order: { email: ''} }
314
339
  expect(assigns[:order]).not_to be_nil
315
340
  end
316
341
 
317
342
  it "should not change the order state" do
318
- post :update, params: { state: 'address' }
343
+ expect do
344
+ post :update, params: { state: 'address', order: { bill_address_attributes: address_params } }
345
+ end.not_to change { order.reload.state }
319
346
  end
320
347
 
321
348
  it "should render the edit template" do
322
- post :update, params: { state: 'address' }
349
+ post :update, params: { state: 'address', order: { bill_address_attributes: address_params } }
323
350
  expect(response).to render_template :edit
324
351
  end
325
352
  end
@@ -342,7 +369,7 @@ describe Spree::CheckoutController, type: :controller do
342
369
  before do
343
370
  order.update_attributes! user: user
344
371
  allow(order).to receive(:next).and_raise(Spree::Core::GatewayError.new("Invalid something or other."))
345
- post :update, params: { state: "address" }
372
+ post :update, params: { state: "address", order: { bill_address_attributes: address_params } }
346
373
  end
347
374
 
348
375
  it "should render the edit template and display exception message" do
@@ -373,7 +400,7 @@ describe Spree::CheckoutController, type: :controller do
373
400
  end
374
401
 
375
402
  it "due to the order having errors" do
376
- put :update, params: { state: order.state, order: {} }
403
+ put :update, params: { state: order.state, order: { bill_address_attributes: address_params } }
377
404
  expect(flash[:error]).to eq("Base error\nAdjustments error")
378
405
  expect(response).to redirect_to(spree.checkout_state_path('address'))
379
406
  end
@@ -387,7 +414,7 @@ describe Spree::CheckoutController, type: :controller do
387
414
  end
388
415
 
389
416
  it "due to no available shipping rates for any of the shipments" do
390
- put :update, params: { state: "address", order: {} }
417
+ put :update, params: { state: "address", order: { bill_address_attributes: address_params } }
391
418
  expect(flash[:error]).to eq(I18n.t('spree.items_cannot_be_shipped'))
392
419
  expect(response).to redirect_to(spree.checkout_state_path('address'))
393
420
  end
@@ -437,7 +464,7 @@ describe Spree::CheckoutController, type: :controller do
437
464
  end
438
465
 
439
466
  it "redirects the customer to the cart page with an error message" do
440
- put :update, params: { state: order.state, order: {} }
467
+ put :update, params: { state: order.state, order: { bill_address_attributes: address_params } }
441
468
  expect(flash[:error]).to eq(I18n.t('spree.insufficient_stock_for_order'))
442
469
  expect(response).to redirect_to(spree.cart_path)
443
470
  end
@@ -496,9 +523,11 @@ describe Spree::CheckoutController, type: :controller do
496
523
  allow(controller).to receive_messages check_authorization: true
497
524
  end
498
525
 
499
- it "doesn't set shipping address on the order" do
526
+ # This does not test whether the shipping address is set via params.
527
+ # It only tests whether it is set in the before action.
528
+ it "doesn't set a default shipping address on the order" do
500
529
  expect(order).to_not receive(:ship_address=)
501
- post :update, params: { state: order.state }
530
+ post :update, params: { state: order.state, order: { bill_address_attributes: address_params } }
502
531
  end
503
532
 
504
533
  it "doesn't remove unshippable items before payment" do
@@ -513,7 +542,7 @@ describe Spree::CheckoutController, type: :controller do
513
542
  allow(controller).to receive_messages check_authorization: true
514
543
 
515
544
  expect {
516
- post :update, params: { state: "payment" }
545
+ post :update, params: { state: "payment", order: { email: "johndoe@example.com"} }
517
546
  }.to change { order.line_items.to_a.size }.from(1).to(0)
518
547
  end
519
548
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_frontend
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.1
4
+ version: 2.8.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-13 00:00:00.000000000 Z
11
+ date: 2020-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_api
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.8.1
19
+ version: 2.8.6
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.8.1
26
+ version: 2.8.6
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: solidus_core
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 2.8.1
33
+ version: 2.8.6
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 2.8.1
40
+ version: 2.8.6
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: canonical-rails
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -332,8 +332,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
332
332
  version: 1.8.23
333
333
  requirements:
334
334
  - none
335
- rubyforge_project:
336
- rubygems_version: 2.7.3
335
+ rubygems_version: 3.0.3
337
336
  signing_key:
338
337
  specification_version: 4
339
338
  summary: Cart and storefront for the Solidus e-commerce project.