product_test.rb 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. require 'test_helper'
  2. class ProductTest < Test::Unit::TestCase
  3. def setup
  4. super
  5. fake "products/632910392", :body => load_fixture('product')
  6. @product = ShopifyAPI::Product.find(632910392)
  7. end
  8. def test_add_metafields_to_product
  9. fake "products/632910392/metafields", :method => :post, :status => 201, :body => load_fixture('metafield')
  10. field = @product.add_metafield(ShopifyAPI::Metafield.new(:namespace => "contact", :key => "email", :value => "123@example.com", :value_type => "string"))
  11. assert_equal ActiveSupport::JSON.decode('{"metafield":{"namespace":"contact","key":"email","value":"123@example.com","value_type":"string"}}'), ActiveSupport::JSON.decode(FakeWeb.last_request.body)
  12. assert !field.new_record?
  13. assert_equal "contact", field.namespace
  14. assert_equal "email", field.key
  15. assert_equal "123@example.com", field.value
  16. end
  17. def test_get_metafields_for_product
  18. fake "products/632910392/metafields", :body => load_fixture('metafields')
  19. metafields = @product.metafields
  20. assert_equal 2, metafields.length
  21. assert metafields.all?{|m| m.is_a?(ShopifyAPI::Metafield)}
  22. end
  23. def test_update_loaded_variant
  24. fake "products/632910392/variants/808950810", :method => :put, :status => 200, :body => load_fixture('variant')
  25. variant = @product.variants.first
  26. variant.price = "0.50"
  27. variant.save
  28. end
  29. end