# frozen_string_literal: true require 'test_helper' class CollectionListingTest < Test::Unit::TestCase def test_get_collection_listings fake("collection_listings", method: :get, status: 201, body: load_fixture('collection_listings')) collection_listings = ShopifyAPI::CollectionListing.find(:all) assert_equal(1, collection_listings.count) assert_equal(1, collection_listings.first.collection_id) assert_equal('Home page', collection_listings.first.title) end def test_get_collection_listing fake("collection_listings/1", method: :get, status: 201, body: load_fixture('collection_listing')) collection_listing = ShopifyAPI::CollectionListing.find(1) assert_equal(1, collection_listing.collection_id) assert_equal('Home page', collection_listing.title) end def test_get_collection_listing_reload fake("collection_listings/1", method: :get, status: 201, body: load_fixture('collection_listing')) collection_listing = ShopifyAPI::CollectionListing.new(collection_id: 1) collection_listing.reload assert_equal(1, collection_listing.collection_id) assert_equal('Home page', collection_listing.title) end def test_get_collection_listing_product_ids fake( "collection_listings/1/product_ids", method: :get, status: 201, body: load_fixture('collection_listing_product_ids') ) collection_listing = ShopifyAPI::CollectionListing.new(collection_id: 1) assert_equal([1, 2], collection_listing.product_ids) end def test_get_collection_listing_product_ids_multi_page_with_cursor version = ShopifyAPI::ApiVersion.find_version('2019-07') ShopifyAPI::Base.api_version = version.to_s collection_listing = ShopifyAPI::CollectionListing.new(collection_id: 1) url = "https://this-is-my-test-shop.myshopify.com/admin/api/2019-07/collection_listings/1/product_ids.json" next_page_info = "notarealpageinfobutthatsokay" next_page_url = "#{url}?page_info=#{next_page_info}" link_header = "<#{next_page_url}>; rel=\"next\"" fake( "collection_listings/1/product_ids", method: :get, status: 201, url: url, body: load_fixture('collection_listing_product_ids'), link: link_header, ) product_ids = collection_listing.product_ids assert_equal([1, 2], product_ids) assert(product_ids.next_page?) fake( "collection_listings/1/product_ids", method: :get, status: 201, url: next_page_url, body: load_fixture('collection_listing_product_ids2'), link: link_header, ) next_page = product_ids.fetch_next_page assert_equal([3, 4], next_page) end end