solidus_core 2.9.5 → 2.9.6

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

Potentially problematic release.


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

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9cd14f61552d6f5bd5cd26fe9d1cffbfa4cd8b0d20d05bd0e625d5f3f81292f2
4
- data.tar.gz: ca164e906fcd1d66f41d849636041cc6d95095c3a5d53ca1191599076409612c
3
+ metadata.gz: 482b41309b1c87feff6b32679da923ed2f6077ca241fd0d1bb358647f4261bb1
4
+ data.tar.gz: db5b3124cc3b7c29b916e037d0e1f16ba378aaa386282f59bb873225cee6c33d
5
5
  SHA512:
6
- metadata.gz: f0f858916f2a25e85c54ede40027e1290885ebb809ec4697592c48007b913bf8aee6bb64f6053aa596d1c721f6c3f1a296c4bce855c5df97262fe42464e4de62
7
- data.tar.gz: 53728500b9dcdc3e130271ad9733e80ab25468eb15f112d81fa61d1a5bf93f16e7162e0aa2bc5f662f8fcc183ee636d2f977552c756bedb85de81096e07e313e
6
+ metadata.gz: bc163558062f4da4c642a1946bfa1fc1d6dfc9a47dddf0fb3f3c3c44c06810e33fe02cbddca9ef007469eb594a19644ce1344d51cc5b04f6b5a039cf57dcc335
7
+ data.tar.gz: e70cf50bf8049770f9fa7ad1be437969dda338298f5dd62b0a44cf545a38f24a57a7d8ccb4e536c8cae5ec899ecd9e18cf40d177adf664bf104ea5d1990e286a
@@ -31,16 +31,30 @@ module Spree
31
31
  end
32
32
 
33
33
  def permitted_checkout_attributes
34
- permitted_attributes.checkout_attributes + [
35
- bill_address_attributes: permitted_address_attributes,
36
- ship_address_attributes: permitted_address_attributes,
37
- payments_attributes: permitted_payment_attributes,
38
- shipments_attributes: permitted_shipment_attributes
39
- ]
34
+ permitted_attributes.checkout_attributes
35
+ end
36
+
37
+ def permitted_checkout_address_attributes
38
+ permitted_attributes.checkout_address_attributes
39
+ end
40
+
41
+ def permitted_checkout_delivery_attributes
42
+ permitted_attributes.checkout_delivery_attributes
43
+ end
44
+
45
+ def permitted_checkout_payment_attributes
46
+ permitted_attributes.checkout_payment_attributes
47
+ end
48
+
49
+ def permitted_checkout_confirm_attributes
50
+ permitted_attributes.checkout_confirm_attributes
40
51
  end
41
52
 
42
53
  def permitted_order_attributes
43
- permitted_checkout_attributes + [
54
+ permitted_checkout_address_attributes +
55
+ permitted_checkout_delivery_attributes +
56
+ permitted_checkout_payment_attributes +
57
+ permitted_checkout_confirm_attributes + [
44
58
  line_items_attributes: permitted_line_item_attributes
45
59
  ]
46
60
  end
@@ -133,7 +133,8 @@ module Spree
133
133
  # spree_wombat serializes payment state as status so imported orders should fall back to status field.
134
134
  payment.state = p[:state] || p[:status] || 'completed'
135
135
  payment.payment_method = Spree::PaymentMethod.find_by!(name: p[:payment_method])
136
- payment.source = create_source_payment_from_params(p[:source], payment) if p[:source]
136
+ source_attributes = p[:source] || p[:source_attributes]
137
+ payment.source = create_source_payment_from_params(source_attributes, payment) if source_attributes
137
138
  payment.save!
138
139
  end
139
140
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spree
4
- VERSION = "2.9.5"
4
+ VERSION = "2.9.6"
5
5
 
6
6
  def self.solidus_version
7
7
  VERSION
@@ -8,7 +8,10 @@ module Spree
8
8
  ATTRIBUTES = [
9
9
  :address_attributes,
10
10
  :address_book_attributes,
11
- :checkout_attributes,
11
+ :checkout_address_attributes,
12
+ :checkout_delivery_attributes,
13
+ :checkout_payment_attributes,
14
+ :checkout_confirm_attributes,
12
15
  :credit_card_update_attributes,
13
16
  :customer_return_attributes,
14
17
  :image_attributes,
@@ -45,10 +48,6 @@ module Spree
45
48
 
46
49
  @@address_book_attributes = address_attributes + [:default]
47
50
 
48
- @@checkout_attributes = [
49
- :coupon_code, :email, :special_instructions, :use_billing
50
- ]
51
-
52
51
  @@credit_card_update_attributes = [
53
52
  :month, :year, :expiry, :first_name, :last_name, :name
54
53
  ]
@@ -91,7 +90,7 @@ module Spree
91
90
  :number, :month, :year, :expiry, :verification_value,
92
91
  :first_name, :last_name, :cc_type, :gateway_customer_profile_id,
93
92
  :gateway_payment_profile_id, :last_digits, :name, :encrypted_data,
94
- :existing_card_id, :wallet_payment_source_id
93
+ :existing_card_id, :wallet_payment_source_id, address_attributes: address_attributes
95
94
  ]
96
95
 
97
96
  @@stock_item_attributes = [:variant, :stock_location, :backorderable, :variant_id]
@@ -129,5 +128,75 @@ module Spree
129
128
  :product_id, :product, :option_values_attributes, :price,
130
129
  :weight, :height, :width, :depth, :sku, :cost_currency, option_value_ids: [], options: [:name, :value]
131
130
  ]
131
+
132
+ @@checkout_address_attributes = [
133
+ :use_billing,
134
+ :email,
135
+ bill_address_attributes: address_attributes,
136
+ ship_address_attributes: address_attributes
137
+ ]
138
+
139
+ @@checkout_delivery_attributes = [
140
+ :special_instructions,
141
+ shipments_attributes: shipment_attributes
142
+ ]
143
+
144
+ @@checkout_payment_attributes = [
145
+ :coupon_code,
146
+ payments_attributes: payment_attributes + [
147
+ source_attributes: source_attributes
148
+ ]
149
+ ]
150
+
151
+ @@checkout_confirm_attributes = []
152
+
153
+ def self.checkout_attributes
154
+ Spree::Deprecation.warn <<-WARN.squish, caller
155
+ checkout_attributes is deprecated, please use the permitted
156
+ attributes set for the specific step that needs to be updated.
157
+
158
+ E.g. permitted_checkout_address_attributes
159
+ WARN
160
+
161
+ CheckoutAdditionalAttributes.new(
162
+ checkout_address_attributes +
163
+ checkout_delivery_attributes +
164
+ checkout_payment_attributes +
165
+ checkout_confirm_attributes
166
+ )
167
+ end
168
+ end
169
+
170
+ class CheckoutAdditionalAttributes < Array
171
+ def <<(*attributes)
172
+ super
173
+
174
+ inject_attributes_to_all_steps(attributes, :<<)
175
+ end
176
+
177
+ def push(*attributes)
178
+ super
179
+
180
+ inject_attributes_to_all_steps(attributes, :push)
181
+ end
182
+ alias append push
183
+
184
+ def prepend(*attributes)
185
+ super
186
+
187
+ inject_attributes_to_all_steps(attributes, :prepend)
188
+ end
189
+ alias unshift prepend
190
+
191
+ private
192
+
193
+ def inject_attributes_to_all_steps(attributes, method)
194
+ attributes.each do |attribute|
195
+ PermittedAttributes.checkout_address_attributes.send(method, attribute)
196
+ PermittedAttributes.checkout_delivery_attributes.send(method, attribute)
197
+ PermittedAttributes.checkout_payment_attributes.send(method, attribute)
198
+ PermittedAttributes.checkout_confirm_attributes.send(method, attribute)
199
+ end
200
+ end
132
201
  end
133
202
  end
@@ -23,7 +23,14 @@ RSpec.describe Spree::Core::ControllerHelpers::StrongParameters, type: :controll
23
23
 
24
24
  describe '#permitted_checkout_attributes' do
25
25
  it 'returns Array class' do
26
- expect(controller.permitted_checkout_attributes.class).to eq Array
26
+ Spree::Deprecation.silence do
27
+ expect(controller.permitted_checkout_attributes.class).to eq Spree::CheckoutAdditionalAttributes
28
+ end
29
+ end
30
+
31
+ it 'is deprecated' do
32
+ expect(Spree::Deprecation).to receive(:warn)
33
+ controller.permitted_checkout_attributes
27
34
  end
28
35
  end
29
36
 
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails_helper"
4
+
5
+ RSpec.describe Spree::PermittedAttributes do
6
+ describe ".checkout_attributes" do
7
+ subject(:permitted_attributes) { described_class }
8
+
9
+ it "when read emits a deprecation warning and return all steps attributes" do
10
+ expect(Spree::Deprecation).to receive(:warn)
11
+ all_attributes = permitted_attributes.checkout_attributes
12
+
13
+ expect(all_attributes).to include(*permitted_attributes.checkout_address_attributes)
14
+ expect(all_attributes).to include(*permitted_attributes.checkout_delivery_attributes)
15
+ expect(all_attributes).to include(*permitted_attributes.checkout_payment_attributes)
16
+ end
17
+
18
+ it "when changed emits a deprecation warning and push changes to all steps' attributes" do
19
+ expect(Spree::Deprecation).to receive(:warn).exactly(4).times
20
+ permitted_attributes.checkout_attributes.push :appended_attribute
21
+ permitted_attributes.checkout_attributes.append :appended_with_alias_attribute
22
+ permitted_attributes.checkout_attributes << :another_appended_attribute
23
+ permitted_attributes.checkout_attributes.prepend :prepended_attribute
24
+
25
+ checkout_steps_attributes = [
26
+ permitted_attributes.checkout_address_attributes,
27
+ permitted_attributes.checkout_delivery_attributes,
28
+ permitted_attributes.checkout_payment_attributes,
29
+ permitted_attributes.checkout_confirm_attributes
30
+ ]
31
+
32
+ checkout_steps_attributes.each do |step_attributes|
33
+ expect(step_attributes).to include(
34
+ :appended_attribute,
35
+ :appended_with_alias_attribute,
36
+ :another_appended_attribute,
37
+ :prepended_attribute)
38
+ end
39
+ end
40
+ end
41
+ end
@@ -101,6 +101,7 @@ RSpec.describe Spree::Promotion::Rules::Taxon, type: :model do
101
101
  before do
102
102
  taxon.children << taxon2
103
103
  taxon.save!
104
+ taxon.reload
104
105
  product.taxons = [taxon2, taxon3]
105
106
  rule.taxons = [taxon, taxon3]
106
107
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.5
4
+ version: 2.9.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: 2020-02-04 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: actionmailer
@@ -971,6 +971,7 @@ files:
971
971
  - spec/lib/spree/migrations_spec.rb
972
972
  - spec/lib/spree/money_spec.rb
973
973
  - spec/lib/spree/permission_sets/default_customer_spec.rb
974
+ - spec/lib/spree/permitted_attributes_spec.rb
974
975
  - spec/lib/spree/promo/environment_spec.rb
975
976
  - spec/lib/tasks/dummy_task.rake
976
977
  - spec/lib/tasks/dummy_task_spec.rb