collection_listing_test.rb 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. require 'test_helper'
  2. class CollectionListingTest < Test::Unit::TestCase
  3. def test_get_collection_listings
  4. fake "collection_listings", method: :get, status: 201, body: load_fixture('collection_listings')
  5. collection_listings = ShopifyAPI::CollectionListing.find(:all)
  6. assert_equal 1, collection_listings.count
  7. assert_equal 1, collection_listings.first.collection_id
  8. assert_equal 'Home page', collection_listings.first.title
  9. end
  10. def test_get_collection_listing
  11. fake "collection_listings/1", method: :get, status: 201, body: load_fixture('collection_listing')
  12. collection_listing = ShopifyAPI::CollectionListing.find(1)
  13. assert_equal 1, collection_listing.collection_id
  14. assert_equal 'Home page', collection_listing.title
  15. end
  16. def test_get_collection_listing_reload
  17. fake "collection_listings/1", method: :get, status: 201, body: load_fixture('collection_listing')
  18. collection_listing = ShopifyAPI::CollectionListing.new(collection_id: 1)
  19. collection_listing.reload
  20. assert_equal 1, collection_listing.collection_id
  21. assert_equal 'Home page', collection_listing.title
  22. end
  23. def test_get_collection_listing_product_ids
  24. fake "collection_listings/1/product_ids", method: :get, status: 201, body: load_fixture('collection_listing_product_ids')
  25. collection_listing = ShopifyAPI::CollectionListing.new(collection_id: 1)
  26. assert_equal [1, 2], collection_listing.product_ids
  27. end
  28. def test_get_collection_listing_product_ids_multi_page_with_cursor
  29. version = ShopifyAPI::ApiVersion.find_version('2019-07')
  30. ShopifyAPI::Base.api_version = version.to_s
  31. collection_listing = ShopifyAPI::CollectionListing.new(collection_id: 1)
  32. url = "https://this-is-my-test-shop.myshopify.com/admin/api/2019-07/collection_listings/1/product_ids.json"
  33. next_page_info = "notarealpageinfobutthatsokay"
  34. next_page_url = "#{url}?page_info=#{next_page_info}"
  35. link_header = "<#{next_page_url}>; rel=\"next\""
  36. fake(
  37. "collection_listings/1/product_ids",
  38. method: :get,
  39. status: 201,
  40. url: url,
  41. body: load_fixture('collection_listing_product_ids'),
  42. link: link_header,
  43. )
  44. product_ids = collection_listing.product_ids
  45. assert_equal [1, 2], product_ids
  46. assert product_ids.next_page?
  47. fake(
  48. "collection_listings/1/product_ids",
  49. method: :get,
  50. status: 201,
  51. url: next_page_url,
  52. body: load_fixture('collection_listing_product_ids2'),
  53. link: link_header,
  54. )
  55. next_page = product_ids.fetch_next_page
  56. assert_equal [3, 4], next_page
  57. end
  58. end