fulfillment_v2_test.rb 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. require 'test_helper'
  2. class FulfillmentV2Test < Test::Unit::TestCase
  3. context "FulfillmentV2" do
  4. context "#update_tracking" do
  5. should "be able to update tracking info for a fulfillment" do
  6. tracking_info = {
  7. number: 'JSDHFHAG',
  8. url: 'https://example.com/fulfillment_tracking/JSDHFHAG',
  9. company: 'ACME co',
  10. }
  11. fake_fulfillment = ActiveSupport::JSON.decode(load_fixture('fulfillment'))['fulfillment']
  12. fake_fulfillment['tracking_number'] = tracking_info[:number]
  13. fake_fulfillment['tracking_numbers'] = [tracking_info[:number]]
  14. fake_fulfillment['tracking_url'] = tracking_info[:url]
  15. fake_fulfillment['tracking_urls'] = [tracking_info[:url]]
  16. fake_fulfillment['tracking_company'] = tracking_info[:company]
  17. request_body = {
  18. fulfillment: {
  19. tracking_info: tracking_info,
  20. notify_customer: true
  21. }
  22. }
  23. fake "fulfillments/#{fake_fulfillment['id']}/update_tracking", method: :post,
  24. request_body: ActiveSupport::JSON.encode(request_body),
  25. body: ActiveSupport::JSON.encode(fulfillment: fake_fulfillment)
  26. fulfillment = ShopifyAPI::FulfillmentV2.new(id: fake_fulfillment['id'])
  27. assert fulfillment.update_tracking(tracking_info: tracking_info, notify_customer: true)
  28. assert_equal tracking_info[:number], fulfillment.tracking_number
  29. assert_equal [tracking_info[:number]], fulfillment.tracking_numbers
  30. assert_equal tracking_info[:url], fulfillment.tracking_url
  31. assert_equal [tracking_info[:url]], fulfillment.tracking_urls
  32. assert_equal tracking_info[:company], fulfillment.tracking_company
  33. end
  34. end
  35. end
  36. end