12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- # frozen_string_literal: true
- require 'test_helper'
- class ProductListingTest < Test::Unit::TestCase
- def test_get_product_listings
- fake("product_listings", method: :get, status: 201, body: load_fixture('product_listings'))
- product_listings = ShopifyAPI::ProductListing.find(:all)
- assert_equal(2, product_listings.count)
- assert_equal(2, product_listings.first.product_id)
- assert_equal(1, product_listings.last.product_id)
- assert_equal('Synergistic Silk Chair', product_listings.first.title)
- assert_equal('Rustic Copper Bottle', product_listings.last.title)
- end
- def test_get_product_listing
- fake("product_listings/2", method: :get, status: 201, body: load_fixture('product_listing'))
- product_listing = ShopifyAPI::ProductListing.find(2)
- assert_equal('Synergistic Silk Chair', product_listing.title)
- end
- def test_reload_product_listing
- fake("product_listings/2", method: :get, status: 201, body: load_fixture('product_listing'))
- product_listing = ShopifyAPI::ProductListing.new(product_id: 2)
- product_listing.reload
- assert_equal('Synergistic Silk Chair', product_listing.title)
- end
- def test_get_product_listing_product_ids
- fake("product_listings/product_ids", method: :get, status: 201, body: load_fixture('product_listing_product_ids'))
- product_ids = ShopifyAPI::ProductListing.product_ids
- assert_equal(2, product_ids.count)
- assert_equal(4, product_ids.first)
- assert_equal(3, product_ids.last)
- end
- def test_get_product_listing_product_ids_multi_page_with_cursor
- version = ShopifyAPI::ApiVersion.find_version('2019-10')
- ShopifyAPI::Base.api_version = version.to_s
- url = "https://this-is-my-test-shop.myshopify.com/admin/api/2019-10/product_listings/product_ids.json"
- next_page_info = "notarealpageinfobutthatsokay"
- next_page_url = "#{url}?page_info=#{next_page_info}"
- link_header = "<#{next_page_url}>; rel=\"next\""
- fake(
- "product_listings/product_ids",
- method: :get,
- status: 201,
- url: url,
- body: load_fixture('product_listing_product_ids'),
- link: link_header,
- )
- product_ids = ShopifyAPI::ProductListing.product_ids
- assert_equal([4, 3], product_ids)
- assert(product_ids.next_page?)
- fake(
- "product_listings/product_ids",
- method: :get,
- status: 201,
- url: next_page_url,
- body: load_fixture('product_listing_product_ids2'),
- link: link_header,
- )
- next_page = product_ids.fetch_next_page
- assert_equal([2, 1], next_page)
- end
- def test_get_product_listing_product_ids_multi_page_with_cursor_fails_on_older_api_version
- version = ShopifyAPI::ApiVersion.find_version('2019-07')
- ShopifyAPI::Base.api_version = version.to_s
- url = "https://this-is-my-test-shop.myshopify.com/admin/api/2019-07/product_listings/product_ids.json"
- fake(
- "product_listings/product_ids",
- method: :get,
- status: 201,
- url: url,
- body: load_fixture('product_listing_product_ids'),
- )
- product_ids = ShopifyAPI::ProductListing.product_ids
- assert_equal([4, 3], product_ids)
- assert_raises(NotImplementedError) do
- product_ids.next_page?
- end
- end
- end
|