solidus_frontend 2.9.6 → 2.10.0.beta1
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 +4 -4
- data/app/controllers/spree/checkout_controller.rb +5 -17
- data/lib/spree/frontend/config.rb +9 -0
- data/lib/spree/frontend/engine.rb +5 -3
- data/{app/models → lib}/spree/frontend_configuration.rb +1 -1
- data/solidus_frontend.gemspec +1 -0
- data/spec/controllers/spree/checkout_controller_spec.rb +19 -48
- data/spec/controllers/spree/orders_controller_ability_spec.rb +1 -1
- data/spec/controllers/spree/orders_controller_spec.rb +2 -2
- data/spec/features/checkout_spec.rb +0 -8
- data/spec/features/products_spec.rb +4 -4
- data/spec/features/taxons_spec.rb +4 -4
- metadata +23 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 310fa3a7c2ffb353cad6a3c0079333d95c073943e0abc47fab729f5540adc33d
|
4
|
+
data.tar.gz: 450b021d8e2016edcc7b0a0a219437077a41e9d0336cef670ddbf5ab1cdea3d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd6a633f4cb60280996525a0baf5dfeb26de2a8b6b09ccd8764b3ae875a6f7ed1ce9042de398fe71e55f86b5e5a8fb7eec451e830d04f907409227651eeb23fa
|
7
|
+
data.tar.gz: d58fb10140bcef216ae59b79ce1cb53237c7d8b19556dc5dc7cde72fa36d0bc7d37ad8815cc7b7c595145447f66f9d9cef5b0b6b23b8d3a84e39b71eb482f1b5
|
@@ -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
|
21
21
|
|
22
22
|
before_action :setup_for_current_state, only: [:edit, :update]
|
23
23
|
|
@@ -87,23 +87,11 @@ module Spree
|
|
87
87
|
end
|
88
88
|
|
89
89
|
def update_params
|
90
|
-
|
91
|
-
|
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
|
-
)
|
90
|
+
if update_params = massaged_params[:order]
|
91
|
+
update_params.permit(permitted_checkout_attributes)
|
103
92
|
else
|
104
|
-
|
105
|
-
|
106
|
-
)
|
93
|
+
# We currently allow update requests without any parameters in them.
|
94
|
+
{}
|
107
95
|
end
|
108
96
|
end
|
109
97
|
|
@@ -1,13 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'spree/frontend/config'
|
4
|
+
|
3
5
|
module Spree
|
4
6
|
module Frontend
|
5
7
|
class Engine < ::Rails::Engine
|
6
8
|
config.middleware.use "Spree::Frontend::Middleware::SeoAssist"
|
7
9
|
|
8
|
-
initializer
|
9
|
-
|
10
|
-
end
|
10
|
+
# Leave initializer empty for backwards-compatability. Other apps
|
11
|
+
# might still rely on this event.
|
12
|
+
initializer "spree.frontend.environment", before: :load_config_initializers do; end
|
11
13
|
end
|
12
14
|
end
|
13
15
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Spree
|
4
4
|
class FrontendConfiguration < Preferences::Configuration
|
5
|
-
preference :locale, :string, default:
|
5
|
+
preference :locale, :string, default: I18n.default_locale
|
6
6
|
|
7
7
|
# Add your terms and conditions in app/views/spree/checkout/_terms_and_conditions.en.html.erb
|
8
8
|
preference :require_terms_and_conditions_acceptance, :boolean, default: false
|
data/solidus_frontend.gemspec
CHANGED
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.add_dependency 'font-awesome-rails', '~> 4.0'
|
29
29
|
s.add_dependency 'jquery-rails'
|
30
30
|
s.add_dependency 'kaminari', '~> 1.1'
|
31
|
+
s.add_dependency 'responders'
|
31
32
|
s.add_dependency 'sassc-rails'
|
32
33
|
s.add_dependency 'truncate_html', '~> 0.9', '>= 0.9.2'
|
33
34
|
|
@@ -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' }
|
72
72
|
end
|
73
73
|
|
74
74
|
context "save successful" do
|
@@ -91,12 +91,12 @@ describe Spree::CheckoutController, type: :controller do
|
|
91
91
|
|
92
92
|
context "with the order in the cart state", partial_double_verification: false do
|
93
93
|
before do
|
94
|
-
order.
|
94
|
+
order.update! user: user
|
95
95
|
order.update_column(:state, "cart")
|
96
96
|
end
|
97
97
|
|
98
98
|
it "should assign order" do
|
99
|
-
post :update, params: { state: "address"
|
99
|
+
post :update, params: { state: "address" }
|
100
100
|
expect(assigns[:order]).not_to be_nil
|
101
101
|
end
|
102
102
|
|
@@ -140,7 +140,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
140
140
|
|
141
141
|
context "with the order in the address state", partial_double_verification: false do
|
142
142
|
before do
|
143
|
-
order.
|
143
|
+
order.update! user: user
|
144
144
|
order.update_columns(ship_address_id: create(:address).id, state: "address")
|
145
145
|
end
|
146
146
|
|
@@ -213,7 +213,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
213
213
|
end
|
214
214
|
|
215
215
|
before do
|
216
|
-
order.
|
216
|
+
order.update! user: user
|
217
217
|
3.times { order.next! } # should put us in the payment state
|
218
218
|
end
|
219
219
|
|
@@ -245,7 +245,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
245
245
|
end
|
246
246
|
|
247
247
|
before do
|
248
|
-
order.
|
248
|
+
order.update! user: user
|
249
249
|
3.times { order.next! } # should put us in the payment state
|
250
250
|
end
|
251
251
|
|
@@ -271,36 +271,11 @@ 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
|
299
274
|
end
|
300
275
|
|
301
276
|
context "when in the confirm state" do
|
302
277
|
before do
|
303
|
-
order.
|
278
|
+
order.update! user: user
|
304
279
|
order.update_column(:state, "confirm")
|
305
280
|
# An order requires a payment to reach the complete state
|
306
281
|
# This is because payment_required? is true on the order
|
@@ -330,23 +305,21 @@ describe Spree::CheckoutController, type: :controller do
|
|
330
305
|
|
331
306
|
context "save unsuccessful" do
|
332
307
|
before do
|
333
|
-
order.
|
308
|
+
order.update! user: user
|
334
309
|
allow(order).to receive_messages valid?: false
|
335
310
|
end
|
336
311
|
|
337
312
|
it "should not assign order" do
|
338
|
-
post :update, params: { state: "address",
|
313
|
+
post :update, params: { state: "address", email: '' }
|
339
314
|
expect(assigns[:order]).not_to be_nil
|
340
315
|
end
|
341
316
|
|
342
317
|
it "should not change the order state" do
|
343
|
-
|
344
|
-
post :update, params: { state: 'address', order: { bill_address_attributes: address_params } }
|
345
|
-
end.not_to change { order.reload.state }
|
318
|
+
post :update, params: { state: 'address' }
|
346
319
|
end
|
347
320
|
|
348
321
|
it "should render the edit template" do
|
349
|
-
post :update, params: { state: 'address'
|
322
|
+
post :update, params: { state: 'address' }
|
350
323
|
expect(response).to render_template :edit
|
351
324
|
end
|
352
325
|
end
|
@@ -367,9 +340,9 @@ describe Spree::CheckoutController, type: :controller do
|
|
367
340
|
|
368
341
|
context "Spree::Core::GatewayError" do
|
369
342
|
before do
|
370
|
-
order.
|
343
|
+
order.update! user: user
|
371
344
|
allow(order).to receive(:next).and_raise(Spree::Core::GatewayError.new("Invalid something or other."))
|
372
|
-
post :update, params: { state: "address"
|
345
|
+
post :update, params: { state: "address" }
|
373
346
|
end
|
374
347
|
|
375
348
|
it "should render the edit template and display exception message" do
|
@@ -400,7 +373,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
400
373
|
end
|
401
374
|
|
402
375
|
it "due to the order having errors" do
|
403
|
-
put :update, params: { state: order.state, order: {
|
376
|
+
put :update, params: { state: order.state, order: {} }
|
404
377
|
expect(flash[:error]).to eq("Base error\nAdjustments error")
|
405
378
|
expect(response).to redirect_to(spree.checkout_state_path('address'))
|
406
379
|
end
|
@@ -414,7 +387,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
414
387
|
end
|
415
388
|
|
416
389
|
it "due to no available shipping rates for any of the shipments" do
|
417
|
-
put :update, params: { state: "address", order: {
|
390
|
+
put :update, params: { state: "address", order: {} }
|
418
391
|
expect(flash[:error]).to eq(I18n.t('spree.items_cannot_be_shipped'))
|
419
392
|
expect(response).to redirect_to(spree.checkout_state_path('address'))
|
420
393
|
end
|
@@ -464,7 +437,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
464
437
|
end
|
465
438
|
|
466
439
|
it "redirects the customer to the cart page with an error message" do
|
467
|
-
put :update, params: { state: order.state, order: {
|
440
|
+
put :update, params: { state: order.state, order: {} }
|
468
441
|
expect(flash[:error]).to eq(I18n.t('spree.insufficient_stock_for_order'))
|
469
442
|
expect(response).to redirect_to(spree.cart_path)
|
470
443
|
end
|
@@ -521,11 +494,9 @@ describe Spree::CheckoutController, type: :controller do
|
|
521
494
|
allow(controller).to receive_messages check_authorization: true
|
522
495
|
end
|
523
496
|
|
524
|
-
|
525
|
-
# It only tests whether it is set in the before action.
|
526
|
-
it "doesn't set a default shipping address on the order" do
|
497
|
+
it "doesn't set shipping address on the order" do
|
527
498
|
expect(order).to_not receive(:ship_address=)
|
528
|
-
post :update, params: { state: order.state
|
499
|
+
post :update, params: { state: order.state }
|
529
500
|
end
|
530
501
|
|
531
502
|
it "doesn't remove unshippable items before payment" do
|
@@ -540,7 +511,7 @@ describe Spree::CheckoutController, type: :controller do
|
|
540
511
|
allow(controller).to receive_messages check_authorization: true
|
541
512
|
|
542
513
|
expect {
|
543
|
-
post :update, params: { state: "payment"
|
514
|
+
post :update, params: { state: "payment" }
|
544
515
|
}.to change { order.line_items.to_a.size }.from(1).to(0)
|
545
516
|
end
|
546
517
|
|
@@ -37,7 +37,7 @@ module Spree
|
|
37
37
|
|
38
38
|
context '#update' do
|
39
39
|
it 'should check if user is authorized for :update' do
|
40
|
-
allow(order).to receive :
|
40
|
+
allow(order).to receive :update
|
41
41
|
expect(controller).to receive(:authorize!).with(:update, order, token)
|
42
42
|
post :update, params: { order: { email: "foo@bar.com" }, token: token }
|
43
43
|
end
|
@@ -117,13 +117,13 @@ describe Spree::OrdersController, type: :controller do
|
|
117
117
|
end
|
118
118
|
|
119
119
|
it "should redirect to cart path (on success)" do
|
120
|
-
allow(order).to receive(:
|
120
|
+
allow(order).to receive(:update).and_return true
|
121
121
|
put :update
|
122
122
|
expect(response).to redirect_to(spree.cart_path)
|
123
123
|
end
|
124
124
|
|
125
125
|
it "should advance the order if :checkout button is pressed" do
|
126
|
-
allow(order).to receive(:
|
126
|
+
allow(order).to receive(:update).and_return true
|
127
127
|
expect(order).to receive(:next)
|
128
128
|
put :update, params: { checkout: true }
|
129
129
|
expect(response).to redirect_to checkout_state_path('address')
|
@@ -374,14 +374,6 @@ describe "Checkout", type: :feature, inaccessible: true do
|
|
374
374
|
expect(page).to have_current_path(spree.order_path(Spree::Order.last))
|
375
375
|
expect(page).to have_content('Ending in 1111')
|
376
376
|
end
|
377
|
-
|
378
|
-
it "allows user to save a billing address associated to the credit card" do
|
379
|
-
choose "use_existing_card_no"
|
380
|
-
fill_in_credit_card
|
381
|
-
|
382
|
-
click_on "Save and Continue"
|
383
|
-
expect(Spree::CreditCard.last.address).to be_present
|
384
|
-
end
|
385
377
|
end
|
386
378
|
|
387
379
|
# regression for https://github.com/spree/spree/issues/2921
|
@@ -51,20 +51,20 @@ describe "Visiting Products", type: :feature, inaccessible: true do
|
|
51
51
|
end
|
52
52
|
|
53
53
|
it 'displays metas' do
|
54
|
-
jersey.
|
54
|
+
jersey.update metas
|
55
55
|
click_link jersey.name
|
56
56
|
expect(page).to have_meta(:description, 'Brand new Ruby on Rails Jersey')
|
57
57
|
expect(page).to have_meta(:keywords, 'ror, jersey, ruby')
|
58
58
|
end
|
59
59
|
|
60
60
|
it 'displays title if set' do
|
61
|
-
jersey.
|
61
|
+
jersey.update metas
|
62
62
|
click_link jersey.name
|
63
63
|
expect(page).to have_title('Ruby on Rails Baseball Jersey Buy High Quality Geek Apparel')
|
64
64
|
end
|
65
65
|
|
66
66
|
it "doesn't use meta_title as heading on page" do
|
67
|
-
jersey.
|
67
|
+
jersey.update metas
|
68
68
|
click_link jersey.name
|
69
69
|
within("h1") do
|
70
70
|
expect(page).to have_content(jersey.name)
|
@@ -73,7 +73,7 @@ describe "Visiting Products", type: :feature, inaccessible: true do
|
|
73
73
|
end
|
74
74
|
|
75
75
|
it 'uses product name in title when meta_title set to empty string' do
|
76
|
-
jersey.
|
76
|
+
jersey.update meta_title: ''
|
77
77
|
click_link jersey.name
|
78
78
|
expect(page).to have_title('Ruby on Rails Baseball Jersey - ' + store_name)
|
79
79
|
end
|
@@ -30,14 +30,14 @@ describe "viewing products", type: :feature, inaccessible: true do
|
|
30
30
|
|
31
31
|
describe 'meta tags and title' do
|
32
32
|
it 'displays metas' do
|
33
|
-
t_shirts.
|
33
|
+
t_shirts.update metas
|
34
34
|
visit '/t/category/super-clothing/t-shirts'
|
35
35
|
expect(page).to have_meta(:description, 'Brand new Ruby on Rails TShirts')
|
36
36
|
expect(page).to have_meta(:keywords, 'ror, tshirt, ruby')
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'display title if set' do
|
40
|
-
t_shirts.
|
40
|
+
t_shirts.update metas
|
41
41
|
visit '/t/category/super-clothing/t-shirts'
|
42
42
|
expect(page).to have_title("Ruby On Rails TShirt")
|
43
43
|
end
|
@@ -49,7 +49,7 @@ describe "viewing products", type: :feature, inaccessible: true do
|
|
49
49
|
|
50
50
|
# Regression test for https://github.com/spree/spree/issues/2814
|
51
51
|
it "doesn't use meta_title as heading on page" do
|
52
|
-
t_shirts.
|
52
|
+
t_shirts.update metas
|
53
53
|
visit '/t/category/super-clothing/t-shirts'
|
54
54
|
within("h1.taxon-title") do
|
55
55
|
expect(page).to have_content(t_shirts.name)
|
@@ -57,7 +57,7 @@ describe "viewing products", type: :feature, inaccessible: true do
|
|
57
57
|
end
|
58
58
|
|
59
59
|
it 'uses taxon name in title when meta_title set to empty string' do
|
60
|
-
t_shirts.
|
60
|
+
t_shirts.update meta_title: ''
|
61
61
|
visit '/t/category/super-clothing/t-shirts'
|
62
62
|
expect(page).to have_title('Category - T-Shirts - ' + store_name)
|
63
63
|
end
|
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.
|
4
|
+
version: 2.10.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Solidus Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-09-19 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.
|
19
|
+
version: 2.10.0.beta1
|
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.
|
26
|
+
version: 2.10.0.beta1
|
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.
|
33
|
+
version: 2.10.0.beta1
|
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.
|
40
|
+
version: 2.10.0.beta1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: canonical-rails
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.1'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: responders
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: sassc-rails
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -204,7 +218,6 @@ files:
|
|
204
218
|
- app/controllers/spree/taxons_controller.rb
|
205
219
|
- app/helpers/spree/orders_helper.rb
|
206
220
|
- app/helpers/spree/taxon_filters_helper.rb
|
207
|
-
- app/models/spree/frontend_configuration.rb
|
208
221
|
- app/views/spree/address/_form.html.erb
|
209
222
|
- app/views/spree/address/_form_hidden.html.erb
|
210
223
|
- app/views/spree/checkout/_address.html.erb
|
@@ -264,8 +277,10 @@ files:
|
|
264
277
|
- lib/generators/solidus/views/override_generator.rb
|
265
278
|
- lib/solidus_frontend.rb
|
266
279
|
- lib/spree/frontend.rb
|
280
|
+
- lib/spree/frontend/config.rb
|
267
281
|
- lib/spree/frontend/engine.rb
|
268
282
|
- lib/spree/frontend/middleware/seo_assist.rb
|
283
|
+
- lib/spree/frontend_configuration.rb
|
269
284
|
- lib/spree_frontend.rb
|
270
285
|
- lib/tasks/rake_util.rb
|
271
286
|
- lib/tasks/taxon.rake
|
@@ -332,7 +347,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
332
347
|
version: 1.8.23
|
333
348
|
requirements:
|
334
349
|
- none
|
335
|
-
rubygems_version: 3.0.
|
350
|
+
rubygems_version: 3.0.6
|
336
351
|
signing_key:
|
337
352
|
specification_version: 4
|
338
353
|
summary: Cart and storefront for the Solidus e-commerce project.
|