Skip to content

Commit 4ce57df

Browse files
committed
Updates from PR review 2
1 parent c63d91d commit 4ce57df

File tree

3 files changed

+61
-18
lines changed

3 files changed

+61
-18
lines changed

lib/shopify_api/resources/fulfillment_order.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def close
3434
load_attributes_from_response(post(:close, {}, only_id))
3535
end
3636

37-
def fulfillment_request(fulfillment_order_line_items:, message:)
37+
def request_fulfillment(fulfillment_order_line_items:, message:)
3838
body = {
3939
fulfillment_request: {
4040
fulfillment_order_line_items: fulfillment_order_line_items,
@@ -56,7 +56,7 @@ def reject_fulfillment_request(params)
5656
load_attributes_from_response(post('fulfillment_request/reject', {}, params.to_json))
5757
end
5858

59-
def cancellation_request(message:)
59+
def request_cancellation(message:)
6060
body = {
6161
cancellation_request: {
6262
message: message

test/fulfillment_order_test.rb

+59-11
Original file line numberDiff line numberDiff line change
@@ -133,17 +133,18 @@ def setup
133133
end
134134
end
135135

136-
context "#fulfillment_request" do
137-
should "make a fulfillment request for a fulfillment order" do
136+
context "#request_fulfillment" do
137+
should "make a fulfillment request for a fulfillment order including unsubmitted" do
138138
original_fulfillment_order = ActiveSupport::JSON.decode(load_fixture('fulfillment_order'))
139+
original_fulfillment_order['status'] = 'closed'
139140
submitted_fulfillment_order = original_fulfillment_order.clone
140141
submitted_fulfillment_order['id'] = 2
141142
submitted_fulfillment_order['status'] = 'open'
142143
submitted_fulfillment_order['request_status'] = 'submitted'
143144
unsubmitted_fulfillment_order = original_fulfillment_order.clone
144145
unsubmitted_fulfillment_order['id'] = 3
146+
unsubmitted_fulfillment_order['status'] = 'open'
145147
unsubmitted_fulfillment_order['request_status'] = 'unsubmitted'
146-
original_fulfillment_order['status'] = 'in_progress'
147148
body = {
148149
original_fulfillment_order: original_fulfillment_order,
149150
submitted_fulfillment_order: submitted_fulfillment_order,
@@ -166,24 +167,71 @@ def setup
166167
fulfillment_order_line_items: [{ id: 1, quantity: 1 }],
167168
message: "Fulfill this FO, please."
168169
}
169-
original_submitted_unsubmitted_fos = fulfillment_order.fulfillment_request(params)
170+
response_fulfillment_orders = fulfillment_order.request_fulfillment(params)
170171

171-
assert_equal 'in_progress', fulfillment_order.status
172+
assert_equal 'closed', fulfillment_order.status
173+
assert_equal 3, response_fulfillment_orders.size
172174

173-
original_fo = original_submitted_unsubmitted_fos['original_fulfillment_order']
175+
original_fo = response_fulfillment_orders['original_fulfillment_order']
174176
assert_equal 519788021, original_fo.id
175-
assert_equal 'in_progress', original_fo.status
177+
assert_equal 'closed', original_fo.status
176178

177-
submitted_fo = original_submitted_unsubmitted_fos['submitted_fulfillment_order']
179+
submitted_fo = response_fulfillment_orders['submitted_fulfillment_order']
178180
assert_equal 2, submitted_fo.id
179181
assert_equal 'open', submitted_fo.status
180182
assert_equal 'submitted', submitted_fo.request_status
181183

182-
unsubmitted_fo = original_submitted_unsubmitted_fos['unsubmitted_fulfillment_order']
184+
unsubmitted_fo = response_fulfillment_orders['unsubmitted_fulfillment_order']
183185
assert_equal 3, unsubmitted_fo.id
184186
assert_equal 'open', unsubmitted_fo.status
185187
assert_equal 'unsubmitted', unsubmitted_fo.request_status
186188
end
189+
190+
should "make a fulfillment request for a fulfillment order excluding unsubmitted" do
191+
original_fulfillment_order = ActiveSupport::JSON.decode(load_fixture('fulfillment_order'))
192+
original_fulfillment_order['status'] = 'closed'
193+
submitted_fulfillment_order = original_fulfillment_order.clone
194+
submitted_fulfillment_order['id'] = 2
195+
submitted_fulfillment_order['status'] = 'open'
196+
submitted_fulfillment_order['request_status'] = 'submitted'
197+
body = {
198+
original_fulfillment_order: original_fulfillment_order,
199+
submitted_fulfillment_order: submitted_fulfillment_order,
200+
unsubmitted_fulfillment_order: nil,
201+
}
202+
request_body = {
203+
fulfillment_request: {
204+
fulfillment_order_line_items: [
205+
{ id: 1, quantity: 1 }
206+
],
207+
message: 'Fulfill this FO, please.'
208+
}
209+
}
210+
fake "fulfillment_orders/519788021/fulfillment_request", :method => :post,
211+
:request_body => ActiveSupport::JSON.encode(request_body),
212+
:body => ActiveSupport::JSON.encode(body)
213+
214+
fulfillment_order = ShopifyAPI::FulfillmentOrder.find(519788021)
215+
params = {
216+
fulfillment_order_line_items: [{ id: 1, quantity: 1 }],
217+
message: "Fulfill this FO, please."
218+
}
219+
response_fulfillment_orders = fulfillment_order.request_fulfillment(params)
220+
221+
assert_equal 'closed', fulfillment_order.status
222+
assert_equal 3, response_fulfillment_orders.size
223+
224+
original_fo = response_fulfillment_orders['original_fulfillment_order']
225+
assert_equal 519788021, original_fo.id
226+
assert_equal 'closed', original_fo.status
227+
228+
submitted_fo = response_fulfillment_orders['submitted_fulfillment_order']
229+
assert_equal 2, submitted_fo.id
230+
assert_equal 'open', submitted_fo.status
231+
assert_equal 'submitted', submitted_fo.request_status
232+
233+
assert_nil response_fulfillment_orders['unsubmitted_fulfillment_order']
234+
end
187235
end
188236

189237
context "#accept_fulfillment_request" do
@@ -234,7 +282,7 @@ def setup
234282
end
235283
end
236284

237-
context "#cancellation_request" do
285+
context "#request_cancellation" do
238286
should "make a cancellation request for a fulfillment order" do
239287
fulfillment_order = ShopifyAPI::FulfillmentOrder.find(519788021)
240288

@@ -244,7 +292,7 @@ def setup
244292
fake "fulfillment_orders/519788021/cancellation_request", :method => :post,
245293
:body => ActiveSupport::JSON.encode(cancelling)
246294

247-
cancelled = fulfillment_order.cancellation_request(message: "Cancelling this please.")
295+
cancelled = fulfillment_order.request_cancellation(message: "Cancelling this please.")
248296

249297
assert_equal true, cancelled
250298
assert_equal 'in_progress', fulfillment_order.status

test/test_helper.rb

-5
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,6 @@ def fake(endpoint, options={})
112112
)
113113
end
114114

115-
def query_string(hash)
116-
return '' if hash.nil? || hash.empty?
117-
'?' + hash.map { |k, v| URI::encode(k.to_s) + '=' + URI::encode(v.to_s) }.join('&')
118-
end
119-
120115
def ar_version_before?(version_string)
121116
Gem::Version.new(ActiveResource::VERSION::STRING) < Gem::Version.new(version_string)
122117
end

0 commit comments

Comments
 (0)