Skip to content

Commit

Permalink
Merge pull request #294 from Shopify/mark-as-failed
Browse files Browse the repository at this point in the history
Add ability to mark a fulfillment request as failed.
  • Loading branch information
garethson committed Aug 8, 2016
2 parents d2b4014 + 4971a32 commit 75afd21
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 11 deletions.
6 changes: 5 additions & 1 deletion lib/shopify_api/resources/fulfillment_request.rb
Expand Up @@ -6,6 +6,10 @@ def order_id
@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
20 changes: 10 additions & 10 deletions 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
Expand Down

0 comments on commit 75afd21

Please sign in to comment.