solidus_api 2.8.5 → 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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04c64c177896dab37dae312ae08fd93f1c044ea416ad2ca7184dde05a5faeb5c
|
4
|
+
data.tar.gz: cb6b60e062b48cb68fd5e73172015877ffe3ee84ebbb58b56ee58cf5844610df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2d2e3c4df97047d23b464b722bc32d6efee403aba8f80891d31e896e15ccfd050a419329855209e31843cfc19283661cd6845857320d989edf718a6455a3223
|
7
|
+
data.tar.gz: 521dc0e421fda8eb0bc9ef9dc7f029800bca98bae82889dee2cabe4a8d242341a285e528db58eed8613d41f5648fe0910f9593ad5505071a475f6cec7bab36c6
|
@@ -76,11 +76,24 @@ module Spree
|
|
76
76
|
end
|
77
77
|
|
78
78
|
def update_params
|
79
|
-
|
80
|
-
|
79
|
+
state = @order.state
|
80
|
+
case state.to_sym
|
81
|
+
when :cart, :address
|
82
|
+
massaged_params.fetch(:order, {}).permit(
|
83
|
+
permitted_checkout_address_attributes
|
84
|
+
)
|
85
|
+
when :delivery
|
86
|
+
massaged_params.require(:order).permit(
|
87
|
+
permitted_checkout_delivery_attributes
|
88
|
+
)
|
89
|
+
when :payment
|
90
|
+
massaged_params.require(:order).permit(
|
91
|
+
permitted_checkout_payment_attributes
|
92
|
+
)
|
81
93
|
else
|
82
|
-
|
83
|
-
|
94
|
+
massaged_params.fetch(:order, {}).permit(
|
95
|
+
permitted_checkout_confirm_attributes
|
96
|
+
)
|
84
97
|
end
|
85
98
|
end
|
86
99
|
|
@@ -128,7 +128,13 @@ module Spree
|
|
128
128
|
end
|
129
129
|
|
130
130
|
def normalize_params
|
131
|
-
|
131
|
+
if params[:order][:payments]
|
132
|
+
payments_params = params[:order].delete(:payments)
|
133
|
+
params[:order][:payments_attributes] = payments_params.map do |payment_params|
|
134
|
+
payment_params[:source_attributes] = payment_params.delete(:source) if payment_params[:source].present?
|
135
|
+
payment_params
|
136
|
+
end
|
137
|
+
end
|
132
138
|
params[:order][:shipments_attributes] = params[:order].delete(:shipments) if params[:order][:shipments]
|
133
139
|
params[:order][:line_items_attributes] = params[:order].delete(:line_items) if params[:order][:line_items]
|
134
140
|
params[:order][:ship_address_attributes] = params[:order].delete(:ship_address) if params[:order][:ship_address].present?
|
@@ -176,6 +176,7 @@ module Spree
|
|
176
176
|
end
|
177
177
|
|
178
178
|
describe 'setting the payment amount' do
|
179
|
+
let(:order) { create(:order_with_line_items, state: :payment) }
|
179
180
|
let(:params) do
|
180
181
|
{
|
181
182
|
order_token: order.guest_token,
|
@@ -326,17 +327,44 @@ module Spree
|
|
326
327
|
end
|
327
328
|
end
|
328
329
|
|
330
|
+
it "cannot update attributes of another step" do
|
331
|
+
order.update_column(:state, "payment")
|
332
|
+
|
333
|
+
params = {
|
334
|
+
order_token: order.guest_token,
|
335
|
+
order: {
|
336
|
+
payments_attributes: [
|
337
|
+
{
|
338
|
+
payment_method_id: @payment_method.id.to_s,
|
339
|
+
source_attributes: attributes_for(:credit_card)
|
340
|
+
}
|
341
|
+
],
|
342
|
+
ship_address_attributes: {
|
343
|
+
zipcode: 'MALICIOUS ZIPCODE'
|
344
|
+
}
|
345
|
+
}
|
346
|
+
}
|
347
|
+
expect do
|
348
|
+
put spree.api_checkout_path(order), params: params
|
349
|
+
end.not_to change { order.reload.ship_address.zipcode }
|
350
|
+
expect(response.status).to eq(200)
|
351
|
+
end
|
352
|
+
|
329
353
|
it "returns the order if the order is already complete" do
|
330
354
|
order.update_columns(completed_at: Time.current, state: 'complete')
|
331
355
|
put spree.api_checkout_path(order.to_param), params: { order_token: order.guest_token }
|
332
356
|
assert_unauthorized!
|
333
357
|
end
|
334
358
|
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
359
|
+
context "in delivery state" do
|
360
|
+
let(:order) { create(:order_with_line_items, state: :delivery) }
|
361
|
+
|
362
|
+
# Regression test for https://github.com/spree/spree/issues/3784
|
363
|
+
it "can update the special instructions for an order" do
|
364
|
+
instructions = "Don't drop it. (Please)"
|
365
|
+
put spree.api_checkout_path(order.to_param), params: { order_token: order.guest_token, order: { special_instructions: instructions } }
|
366
|
+
expect(json_response['special_instructions']).to eql(instructions)
|
367
|
+
end
|
340
368
|
end
|
341
369
|
|
342
370
|
context "as an admin" do
|
@@ -156,6 +156,7 @@ module Spree
|
|
156
156
|
end
|
157
157
|
|
158
158
|
context 'creating payment' do
|
159
|
+
let!(:order) { create(:order_with_line_items) }
|
159
160
|
let(:order_params) { super().merge(payments_attributes: [{ payment_method_id: payment_method.id }]) }
|
160
161
|
|
161
162
|
context "with allowed payment method" do
|
@@ -166,6 +167,28 @@ module Spree
|
|
166
167
|
subject
|
167
168
|
}.to change { Spree::Payment.count }.by(1)
|
168
169
|
end
|
170
|
+
|
171
|
+
context 'trying to change the address' do
|
172
|
+
let(:order_params) do
|
173
|
+
super().merge(
|
174
|
+
ship_address_attributes: {
|
175
|
+
zipcode: '90100'
|
176
|
+
}
|
177
|
+
)
|
178
|
+
end
|
179
|
+
|
180
|
+
it 'changes the address' do
|
181
|
+
expect {
|
182
|
+
subject
|
183
|
+
}.to change { order.reload.ship_address.zipcode }
|
184
|
+
end
|
185
|
+
|
186
|
+
it 'invalidates the shipments' do
|
187
|
+
expect {
|
188
|
+
subject
|
189
|
+
}.to change { order.reload.shipments }.to([])
|
190
|
+
end
|
191
|
+
end
|
169
192
|
end
|
170
193
|
|
171
194
|
context "with disallowed payment method" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.8.
|
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:
|
11
|
+
date: 2020-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jbuilder
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.8.
|
61
|
+
version: 2.8.6
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.8.
|
68
|
+
version: 2.8.6
|
69
69
|
description: REST API for the Solidus e-commerce framework.
|
70
70
|
email: contact@solidus.io
|
71
71
|
executables: []
|
@@ -309,7 +309,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
309
309
|
- !ruby/object:Gem::Version
|
310
310
|
version: 1.8.23
|
311
311
|
requirements: []
|
312
|
-
rubygems_version: 3.0.
|
312
|
+
rubygems_version: 3.0.3
|
313
313
|
signing_key:
|
314
314
|
specification_version: 4
|
315
315
|
summary: REST API for the Solidus e-commerce framework.
|