solidus_frontend 2.10.0.beta1 → 2.10.0

Sign up to get free protection for your applications and to get access to all the features.

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: 310fa3a7c2ffb353cad6a3c0079333d95c073943e0abc47fab729f5540adc33d
4
- data.tar.gz: 450b021d8e2016edcc7b0a0a219437077a41e9d0336cef670ddbf5ab1cdea3d6
3
+ metadata.gz: cf4a33ae63ea7b75b77ef676f7e2faf8af4785b3206d7f91749f454de16690e2
4
+ data.tar.gz: a67e00d14d14999acd5e4c6a89a050e4bff7a5086bad4f76fe345634d8a64cbe
5
5
  SHA512:
6
- metadata.gz: dd6a633f4cb60280996525a0baf5dfeb26de2a8b6b09ccd8764b3ae875a6f7ed1ce9042de398fe71e55f86b5e5a8fb7eec451e830d04f907409227651eeb23fa
7
- data.tar.gz: d58fb10140bcef216ae59b79ce1cb53237c7d8b19556dc5dc7cde72fa36d0bc7d37ad8815cc7b7c595145447f66f9d9cef5b0b6b23b8d3a84e39b71eb482f1b5
6
+ metadata.gz: 6474eb4097721563dd08ea496e8c05dea9300ebe54f5fe3e0f7c747c5880f07ce1f59585222e0bb74b1fe175d9ce09f7c5825faf3b89dd69699189d2fb2ca493
7
+ data.tar.gz: c02d5826a5a8b24dec3f415b38d3ddc428e12e400ac13502218e230514ebefb1748053b8b4395b0ba5384edd021d0f1abf4a7130ca5ca1bfda1533fe37d07c5c
@@ -963,8 +963,8 @@ p[data-hook="use_billing"] {
963
963
  }
964
964
 
965
965
  input[type="text"] {
966
- flex: 3 0;
967
- width: 100%;
966
+ flex: 1 auto;
967
+ width: 50%;
968
968
  margin-right: 5px;
969
969
  }
970
970
 
@@ -1268,7 +1268,7 @@ table.order-summary {
1268
1268
  // # Logo
1269
1269
  #logo {
1270
1270
  padding: 20px 0;
1271
-
1271
+
1272
1272
  > a {
1273
1273
  display: inline-block;
1274
1274
  }
@@ -137,6 +137,10 @@ module Spree
137
137
  redirect_to(spree.cart_path) && return unless @order
138
138
  end
139
139
 
140
+ # Allow the customer to only go back or stay on the current state
141
+ # when trying to change it via params[:state]. It's not allowed to
142
+ # jump forward and skip states (unless #skip_state_validation? is
143
+ # truthy).
140
144
  def set_state_if_present
141
145
  if params[:state]
142
146
  redirect_to checkout_state_path(@order.state) if @order.can_go_to_state?(params[:state]) && !skip_state_validation?
@@ -42,6 +42,10 @@ module Spree
42
42
  @order = current_order || Spree::Order.incomplete.find_or_initialize_by(guest_token: cookies.signed[:guest_token])
43
43
  authorize! :read, @order, cookies.signed[:guest_token]
44
44
  associate_user
45
+ if params[:id] && @order.number != params[:id]
46
+ flash[:error] = t('spree.cannot_edit_orders')
47
+ redirect_to cart_path
48
+ end
45
49
  end
46
50
 
47
51
  # Adds a new item to the order (creating a new order if none already exists)
@@ -59,8 +63,8 @@ module Spree
59
63
 
60
64
  begin
61
65
  @line_item = @order.contents.add(variant, quantity)
62
- rescue ActiveRecord::RecordInvalid => e
63
- @order.errors.add(:base, e.record.errors.full_messages.join(", "))
66
+ rescue ActiveRecord::RecordInvalid => error
67
+ @order.errors.add(:base, error.record.errors.full_messages.join(", "))
64
68
  end
65
69
 
66
70
  respond_with(@order) do |format|
@@ -24,6 +24,7 @@ module Solidus
24
24
  def copy_views
25
25
  views_to_copy.each do |file|
26
26
  next if File.directory?(file)
27
+
27
28
  dest_file = Pathname.new(file).relative_path_from(source_dir)
28
29
  copy_file file, Rails.root.join('app', 'views', 'spree', dest_file)
29
30
  end
@@ -33,8 +34,8 @@ module Solidus
33
34
 
34
35
  def views_to_copy
35
36
  if @options['only']
36
- VIEWS.select do |v|
37
- Pathname.new(v).relative_path_from(source_dir).to_s.include?(@options['only'])
37
+ VIEWS.select do |view|
38
+ Pathname.new(view).relative_path_from(source_dir).to_s.include?(@options['only'])
38
39
  end
39
40
  else
40
41
  VIEWS
@@ -38,11 +38,11 @@ module Spree
38
38
  end
39
39
 
40
40
  def build_query(params)
41
- params.map { |k, v|
42
- if v.class == Array
43
- build_query(v.map { |x| ["#{k}[]", x] })
41
+ params.map { |key, value|
42
+ if value.class == Array
43
+ build_query(value.map { |parameter| ["#{key}[]", parameter] })
44
44
  else
45
- k + "=" + Rack::Utils.escape(v)
45
+ key + "=" + Rack::Utils.escape(value)
46
46
  end
47
47
  }.join("&")
48
48
  end
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.require_path = 'lib'
19
19
  s.requirements << 'none'
20
20
 
21
- s.required_ruby_version = '>= 2.2.2'
21
+ s.required_ruby_version = '>= 2.4.0'
22
22
  s.required_rubygems_version = '>= 1.8.23'
23
23
 
24
24
  s.add_dependency 'solidus_api', s.version
@@ -102,6 +102,31 @@ describe Spree::OrdersController, type: :controller do
102
102
  end
103
103
  end
104
104
 
105
+ context '#edit' do
106
+ before do
107
+ allow(controller).to receive :authorize!
108
+ allow(controller).to receive_messages current_order: order
109
+ end
110
+
111
+ it 'should render cart' do
112
+ get :edit, params: { id: order.number }
113
+
114
+ expect(flash[:error]).to be_nil
115
+ expect(response).to be_ok
116
+ end
117
+
118
+ context 'with another order number than the current_order' do
119
+ let(:other_order) { create(:completed_order_with_totals) }
120
+
121
+ it 'should display error message' do
122
+ get :edit, params: { id: other_order.number }
123
+
124
+ expect(flash[:error]).to eq "You may only edit your current shopping cart."
125
+ expect(response).to redirect_to cart_path
126
+ end
127
+ end
128
+ end
129
+
105
130
  context "#update" do
106
131
  context "with authorization" do
107
132
  before do
@@ -672,6 +672,57 @@ describe "Checkout", type: :feature, inaccessible: true do
672
672
  end
673
673
  end
674
674
 
675
+ # Regression test for: https://github.com/solidusio/solidus/issues/2998
676
+ context 'when two shipping categories are available' do
677
+ let!(:first_category) { create(:shipping_category) }
678
+ let!(:second_category) { create(:shipping_category) }
679
+
680
+ let!(:first_shipping_method) do
681
+ create(:shipping_method,
682
+ shipping_categories: [first_category],
683
+ stores: [store])
684
+ end
685
+
686
+ let!(:second_shipping_method) do
687
+ create(:shipping_method,
688
+ shipping_categories: [second_category],
689
+ stores: [store])
690
+ end
691
+
692
+ context 'assigned to two different products' do
693
+ let!(:first_product) do
694
+ create(:product,
695
+ name: 'First product',
696
+ shipping_category: first_category)
697
+ end
698
+
699
+ let!(:second_product) do
700
+ create(:product,
701
+ name: 'Second product',
702
+ shipping_category: second_category)
703
+ end
704
+
705
+ before do
706
+ stock_location.stock_items.update_all(count_on_hand: 10)
707
+ end
708
+
709
+ it 'transitions successfully to the delivery step', js: true do
710
+ visit spree.product_path(first_product)
711
+ click_button 'add-to-cart-button'
712
+ visit spree.product_path(second_product)
713
+ click_button 'add-to-cart-button'
714
+
715
+ click_button 'Checkout'
716
+
717
+ fill_in_address
718
+ fill_in 'order_email', with: 'test@example.com'
719
+ click_button 'Save and Continue'
720
+
721
+ expect(Spree::Order.last.state).to eq('delivery')
722
+ end
723
+ end
724
+ end
725
+
675
726
  def fill_in_credit_card(number: "4111 1111 1111 1111")
676
727
  fill_in "Name on card", with: 'Mary Doe'
677
728
  fill_in_with_force "Card Number", with: number
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.10.0.beta1
4
+ version: 2.10.0
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-09-19 00:00:00.000000000 Z
11
+ date: 2020-01-15 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.10.0.beta1
19
+ version: 2.10.0
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.10.0.beta1
26
+ version: 2.10.0
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.10.0.beta1
33
+ version: 2.10.0
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.10.0.beta1
40
+ version: 2.10.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: canonical-rails
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -339,7 +339,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
339
339
  requirements:
340
340
  - - ">="
341
341
  - !ruby/object:Gem::Version
342
- version: 2.2.2
342
+ version: 2.4.0
343
343
  required_rubygems_version: !ruby/object:Gem::Requirement
344
344
  requirements:
345
345
  - - ">="
@@ -347,7 +347,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
347
347
  version: 1.8.23
348
348
  requirements:
349
349
  - none
350
- rubygems_version: 3.0.6
350
+ rubygems_version: 3.0.3
351
351
  signing_key:
352
352
  specification_version: 4
353
353
  summary: Cart and storefront for the Solidus e-commerce project.