variant_test.rb 3.4 KB

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