shop_test.rb 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. require 'test_helper'
  2. class ShopTest < Test::Unit::TestCase
  3. def setup
  4. super
  5. fake("shop")
  6. @shop = ShopifyAPI::Shop.current
  7. end
  8. def test_current_should_return_current_shop
  9. assert(@shop.is_a?(ShopifyAPI::Shop))
  10. assert_equal("Apple Computers", @shop.name)
  11. assert_equal("apple.myshopify.com", @shop.myshopify_domain)
  12. assert_equal(690933842, @shop.id)
  13. assert_equal("2007-12-31T19:00:00-05:00", @shop.created_at)
  14. assert_nil(@shop.tax_shipping)
  15. end
  16. def test_current_with_options_should_return_current_shop
  17. fake(
  18. "shop.json?fields%5B%5D=name&fields%5B%5D=myshopify_domain",
  19. extension: false,
  20. method: :get,
  21. status: 201,
  22. body: load_fixture('shop')
  23. )
  24. @shop = ShopifyAPI::Shop.current(params: { fields: [:name, :myshopify_domain] })
  25. assert(@shop.is_a?(ShopifyAPI::Shop))
  26. assert_equal("Apple Computers", @shop.name)
  27. assert_equal("apple.myshopify.com", @shop.myshopify_domain)
  28. end
  29. def test_get_all_metafields_for_shop
  30. fake("metafields")
  31. metafields = @shop.metafields
  32. assert_equal(3, metafields.length)
  33. assert(metafields.all? { |m| m.is_a?(ShopifyAPI::Metafield) })
  34. end
  35. def test_get_2_metafields_for_shop
  36. body = ActiveSupport::JSON.decode(load_fixture('metafields'))
  37. body['metafields'].slice!(2, 1)
  38. fake('metafields.json?limit=2', body: body.to_json, extension: false)
  39. metafields = @shop.metafields(limit: 2)
  40. assert_equal(2, metafields.length)
  41. assert(metafields.all? { |m| m.is_a?(ShopifyAPI::Metafield) })
  42. end
  43. def test_add_metafield
  44. fake("metafields", method: :post, status: 201, body: load_fixture('metafield'))
  45. field = @shop.add_metafield(
  46. ShopifyAPI::Metafield.new(namespace: "contact", key: "email", value: "123@example.com", value_type: "string")
  47. )
  48. assert_equal(
  49. ActiveSupport::JSON.decode(
  50. '{"metafield":{"namespace":"contact","key":"email","value":"123@example.com","value_type":"string"}}'
  51. ),
  52. ActiveSupport::JSON.decode(WebMock.last_request.body)
  53. )
  54. assert(!field.new_record?)
  55. assert_equal("contact", field.namespace)
  56. assert_equal("email", field.key)
  57. assert_equal("123@example.com", field.value)
  58. end
  59. def test_events
  60. fake("events")
  61. events = @shop.events
  62. assert_equal(3, events.length)
  63. assert(events.all? { |m| m.is_a?(ShopifyAPI::Event) })
  64. end
  65. end