metafield_test.rb 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. require 'test_helper'
  2. class MetafieldTest < Test::Unit::TestCase
  3. def test_get_metafields
  4. fake("metafields", method: :get, body: load_fixture('metafields'))
  5. ShopifyAPI::Metafield.find(:all)
  6. end
  7. def test_get_metafield
  8. fake("metafields/721389482", method: :get, body: load_fixture('metafield'))
  9. assert(ShopifyAPI::Metafield.find(721389482))
  10. end
  11. def test_get_metafield_of_a_blog
  12. fake("blogs/1008414260/metafields/721389482", method: :get, body: load_fixture('metafield'))
  13. metafield = ShopifyAPI::Metafield.find(721389482, params: { resource: "blogs", resource_id: 1008414260 })
  14. assert_equal(1008414260, metafield.prefix_options[:resource_id])
  15. end
  16. def test_create_metafield_for_a_blog
  17. fake("blogs/1008414260", method: :get, body: load_fixture('blog'))
  18. fake("blogs/1008414260/metafields", method: :post, status: 201, body: load_fixture('metafield'))
  19. blog = ShopifyAPI::Blog.find(1008414260)
  20. metafield = blog.add_metafield(
  21. ShopifyAPI::Metafield.new(
  22. namespace: "summaries", key: "First Summary", value: "Make commerce better", value_type: "string"
  23. )
  24. )
  25. assert_equal(
  26. ActiveSupport::JSON.decode(
  27. '{"metafield":{"namespace":"summaries","key":"First Summary",' \
  28. '"value":"Make commerce better","value_type":"string"}}'
  29. ),
  30. ActiveSupport::JSON.decode(WebMock.last_request.body)
  31. )
  32. assert(!metafield.new_record?)
  33. end
  34. def test_update_metafield
  35. fake("metafields/721389482", method: :get, body: load_fixture('metafield'))
  36. fake("metafields/721389482", method: :put, status: 200, body: load_fixture('metafield'))
  37. metafield = ShopifyAPI::Metafield.find(721389482)
  38. metafield.namespace = "teaser"
  39. assert(metafield.save)
  40. end
  41. def test_delete_metafield
  42. fake("metafields/721389482", method: :get, body: load_fixture('metafield'))
  43. fake("metafields/721389482", method: :delete, body: 'destroyed')
  44. metafield = ShopifyAPI::Metafield.find(721389482)
  45. assert(metafield.destroy)
  46. end
  47. end