variant_test.rb 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. require 'test_helper'
  2. class VariantTest < Test::Unit::TestCase
  3. def test_get_variants
  4. fake "products/632910392/variants", :method => :get, :body => load_fixture('variants')
  5. variants = ShopifyAPI::Variant.find(:all, :params => { :product_id => 632910392 })
  6. assert_equal variants.map(&:id).sort, [39072856, 49148385, 457924702, 808950810]
  7. end
  8. def test_get_variant_namespaced
  9. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  10. v = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  11. assert_equal 632910392, v.product_id
  12. end
  13. def test_get_variant
  14. fake "variants/808950810", :method => :get, :body => load_fixture('variant')
  15. v = ShopifyAPI::Variant.find(808950810)
  16. assert_equal 632910392, v.product_id
  17. end
  18. def test_product_id_should_be_accessible_if_via_product_endpoint
  19. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  20. v = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  21. assert_equal 632910392, v.product_id
  22. end
  23. def test_product_id_should_be_accessible_if_via_variant_endpoint
  24. fake "variants/808950810", :method => :get, :body => load_fixture('variant')
  25. v = ShopifyAPI::Variant.find(808950810)
  26. assert_equal 632910392, v.product_id
  27. end
  28. def test_delete_variant
  29. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  30. fake "products/632910392/variants/808950810", :method => :delete, :body => 'destroyed'
  31. v = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  32. assert v.destroy
  33. end
  34. def test_deprecated_inventory_fields_are_included_in_2019_07
  35. ShopifyAPI::Base.api_version = '2019-07'
  36. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  37. variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  38. assert variant.as_json.include?('inventory_quantity')
  39. end
  40. def test_deprecated_inventory_fields_are_removed_in_2020_01
  41. ShopifyAPI::Base.api_version = '2020-01'
  42. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  43. variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  44. refute variant.as_json.include?('inventory_quantity')
  45. end
  46. def test_setting_variant_inventory_quantity_adjustment_passes_in_api_before_2019_10
  47. ShopifyAPI::Base.api_version = '2019-07'
  48. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  49. variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  50. variant.inventory_quantity_adjustment = 8
  51. end
  52. def test_setting_variant_inventory_quantity_adjustment_fails_in_2019_10_api
  53. ShopifyAPI::Base.api_version = '2019-10'
  54. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  55. variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  56. assert_raises(ShopifyAPI::ValidationException) do
  57. variant.inventory_quantity_adjustment = 8
  58. end
  59. end
  60. def test_setting_variant_inventory_quantity_adjustment_fails_in_the_unstable_api
  61. ShopifyAPI::Base.api_version = :unstable
  62. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  63. variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  64. assert_raises(ShopifyAPI::ValidationException) do
  65. variant.inventory_quantity_adjustment = 8
  66. end
  67. end
  68. def test_setting_variant_inventory_quantity_passes_in_api_before_2019_10
  69. ShopifyAPI::Base.api_version = '2019-07'
  70. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  71. variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  72. variant.inventory_quantity = 8
  73. end
  74. def test_setting_variant_inventory_quantity_fails_in_2019_10_api
  75. ShopifyAPI::Base.api_version = '2019-10'
  76. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  77. variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  78. assert_raises(ShopifyAPI::ValidationException) do
  79. variant.inventory_quantity = 8
  80. end
  81. end
  82. def test_setting_variant_inventory_quantity_fails_in_the_unstable_api
  83. ShopifyAPI::Base.api_version = :unstable
  84. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  85. variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  86. assert_raises(ShopifyAPI::ValidationException) do
  87. variant.inventory_quantity = 8
  88. end
  89. end
  90. def test_setting_variant_old_inventory_quantity_passes_in_api_before_2019_10
  91. ShopifyAPI::Base.api_version = '2019-07'
  92. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  93. variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  94. variant.old_inventory_quantity = 8
  95. end
  96. def test_setting_variant_old_inventory_quantity_fails_in_2019_10_api
  97. ShopifyAPI::Base.api_version = '2019-10'
  98. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  99. variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  100. assert_raises(ShopifyAPI::ValidationException) do
  101. variant.old_inventory_quantity = 8
  102. end
  103. end
  104. def test_setting_variant_old_inventory_quantity_fails_in_the_unstable_api
  105. ShopifyAPI::Base.api_version = :unstable
  106. fake "products/632910392/variants/808950810", :method => :get, :body => load_fixture('variant')
  107. variant = ShopifyAPI::Variant.find(808950810, :params => {:product_id => 632910392})
  108. assert_raises(ShopifyAPI::ValidationException) do
  109. variant.old_inventory_quantity = 8
  110. end
  111. end
  112. end