Browse Source

Add ability to mark a fulfillment request as failed.

Gareth du Plooy 8 years ago
parent
commit
4971a32ecc
2 changed files with 15 additions and 11 deletions
  1. 5 1
      lib/shopify_api/resources/fulfillment_request.rb
  2. 10 10
      test/fulfillment_request_test.rb

+ 5 - 1
lib/shopify_api/resources/fulfillment_request.rb

@@ -6,6 +6,10 @@ module ShopifyAPI
       @prefix_options[:order_id]
     end
 
-    def cancel; load_attributes_from_response(post(:cancel, {}, only_id)); end
+    def mark_as_failed
+      load_attributes_from_response(
+        put(:mark_as_failed, message: failure_message)
+      )
+    end
   end
 end

+ 10 - 10
test/fulfillment_request_test.rb

@@ -1,27 +1,27 @@
 require 'test_helper'
 
-class FulFillmentTest < Test::Unit::TestCase
+class FulFillmentRequestTest < Test::Unit::TestCase
   def setup
-    fake "orders/450789469/fulfillment_requests/695890229", :method => :get, :body => load_fixture('fulfillment_request')
+    fake "orders/450789469/fulfillment_requests/695890229", method: :get, body: load_fixture('fulfillment_request')
   end
 
-  context "#cancel" do
-    should "be able to cancel fulfillment request" do
-      fulfillment_request = ShopifyAPI::FulfillmentRequest.find(255858046, :params => {:order_id => 450789469})
+  context "#mark_as_failed" do
+    should "be able to mark_as_failed a fulfillment request" do
+      fulfillment_request = ShopifyAPI::FulfillmentRequest.find(255858046, params: { order_id: 450789469 })
 
       cancelled = ActiveSupport::JSON.decode(load_fixture('fulfillment_request'))
-      cancelled['failure_message'] = 'cancelled'
-      fake "orders/450789469/fulfillments/695890229/cancel", :method => :post, :body => ActiveSupport::JSON.encode(cancelled)
+      cancelled['failure_message'] = 'failure reason'
+      fake "orders/450789469/fulfillment_requests/695890229/mark_as_failed", method: :put, body: ActiveSupport::JSON.encode(cancelled)
 
       assert fulfillment_request.failure_message.blank?
-      assert fulfillment_request.cancel
-      assert_equal 'cancelled', fulfillment_request.failure_message
+      assert fulfillment_request.mark_as_failed
+      assert_equal 'failure reason', fulfillment_request.failure_message
     end
   end
 
   context "#find" do
     should "be able to find fulfillment request" do
-      fulfillment_request = ShopifyAPI::FulfillmentRequest.find(255858046, :params => {:order_id => 450789469})
+      fulfillment_request = ShopifyAPI::FulfillmentRequest.find(255858046, params: { order_id: 450789469 })
       assert_equal 695890229, fulfillment_request.id
       assert_equal 450789469, fulfillment_request.order_id
     end