Skip to content

Commit 0c557e7

Browse files
committed
Updates from PR review
1 parent 10dfe59 commit 0c557e7

File tree

2 files changed

+82
-84
lines changed

2 files changed

+82
-84
lines changed

test/fulfillment_order_fulfillment_test.rb

-84
This file was deleted.

test/fulfillment_v2_test.rb

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
require 'test_helper'
2+
3+
class FulfillmentV2Test < Test::Unit::TestCase
4+
context "FulfillmentV2" do
5+
context "#create" do
6+
should "be able to create a fulfillment order fulfillment" do
7+
create_fulfillment_attributes = {
8+
message: "The message for this FO fulfillment",
9+
notify_customer: true,
10+
tracking_info: {
11+
number: "XSDFHYR23475",
12+
url: "https://tracking.example.com/XSDFHYR23475",
13+
company: "TFTC - the fulfillment/tracking company"
14+
},
15+
line_items_by_fulfillment_order: [
16+
{
17+
fulfillment_order_id: 3,
18+
fulfillment_order_line_items: [{ id: 2, quantity: 1 }]
19+
}
20+
]
21+
}
22+
request_body = { fulfillment: create_fulfillment_attributes }
23+
response_body = { fulfillment: create_fulfillment_attributes.merge(id: 346743624) }
24+
fake "fulfillments", :method => :post,
25+
:request_body => ActiveSupport::JSON.encode(request_body),
26+
:body => ActiveSupport::JSON.encode(response_body)
27+
28+
fulfillment = ShopifyAPI::FulfillmentV2.new(create_fulfillment_attributes)
29+
assert fulfillment.save
30+
assert_equal 346743624, fulfillment.id
31+
end
32+
end
33+
34+
context "#update_tracking" do
35+
should "be able to update tracking info for a fulfillment" do
36+
tracking_info = {
37+
number: 'JSDHFHAG',
38+
url: 'https://example.com/fulfillment_tracking/JSDHFHAG',
39+
company: 'ACME co',
40+
}
41+
fake_fulfillment = ActiveSupport::JSON.decode(load_fixture('fulfillment'))['fulfillment']
42+
fake_fulfillment['tracking_number'] = tracking_info[:number]
43+
fake_fulfillment['tracking_numbers'] = [tracking_info[:number]]
44+
fake_fulfillment['tracking_url'] = tracking_info[:url]
45+
fake_fulfillment['tracking_urls'] = [tracking_info[:url]]
46+
fake_fulfillment['tracking_company'] = tracking_info[:company]
47+
48+
request_body = {
49+
fulfillment: {
50+
tracking_info: tracking_info,
51+
notify_customer: true
52+
}
53+
}
54+
fake "fulfillments/#{fake_fulfillment['id']}/update_tracking", method: :post,
55+
request_body: ActiveSupport::JSON.encode(request_body),
56+
body: ActiveSupport::JSON.encode(fulfillment: fake_fulfillment)
57+
58+
fulfillment = ShopifyAPI::FulfillmentV2.new(id: fake_fulfillment['id'])
59+
assert fulfillment.update_tracking(tracking_info: tracking_info, notify_customer: true)
60+
61+
assert_equal tracking_info[:number], fulfillment.tracking_number
62+
assert_equal [tracking_info[:number]], fulfillment.tracking_numbers
63+
assert_equal tracking_info[:url], fulfillment.tracking_url
64+
assert_equal [tracking_info[:url]], fulfillment.tracking_urls
65+
assert_equal tracking_info[:company], fulfillment.tracking_company
66+
end
67+
end
68+
69+
context "#cancel" do
70+
should "be able to cancel a fulfillment" do
71+
fake_fulfillment = ActiveSupport::JSON.decode(load_fixture('fulfillment'))['fulfillment']
72+
fake_fulfillment['status'] = 'cancelled'
73+
fake "fulfillments/#{fake_fulfillment['id']}/cancel", method: :post,
74+
body: ActiveSupport::JSON.encode(fulfillment: fake_fulfillment)
75+
76+
fulfillment = ShopifyAPI::FulfillmentV2.new(id: fake_fulfillment['id'])
77+
assert fulfillment.cancel
78+
assert_equal 'cancelled', fulfillment.status
79+
end
80+
end
81+
end
82+
end

0 commit comments

Comments
 (0)