require 'test_helper' module Workarea decorate Storefront::PaginationSystemTest, with: :nvy_theme do def test_category_pagination category = create_category categorize_products(category) visit storefront.category_path(category) scroll_to_bottom assert(page.has_content?('Product 1')) assert(page.has_content?('Product 2')) assert(page.has_content?('Product 3')) assert(page.has_content?('Product 4')) assert(page.has_content?('Product 5')) scroll_to_bottom refute(page.has_content?(t('workarea.storefront.pagination.next_page'))) click_link t('workarea.storefront.pagination.load_more') assert_current_path(storefront.category_path(category)) assert(page.has_content?('Product 1')) assert(page.has_content?('Product 2')) assert(page.has_content?('Product 3')) assert(page.has_content?('Product 4')) assert(page.has_content?('Product 5')) assert(page.has_content?('Product 6')) refute(page.has_content?(t('workarea.storefront.pagination.load_more'))) find('a', text: 'Product 6').click page.execute_script("history.back()") assert_current_path(storefront.category_path(category)) wait_for_xhr scroll_to_bottom refute(page.has_content?(t('workarea.storefront.pagination.load_more'))) assert_match(/PROD1.*PROD2.*PROD3.*PROD4.*PROD5.*PROD6/m, page.html) end def test_search_pagination visit storefront.search_path(q: 'Product') scroll_to_bottom assert(page.has_content?('Product 1')) assert(page.has_content?('Product 2')) assert(page.has_content?('Product 3')) assert(page.has_content?('Product 4')) scroll_to_bottom assert(page.has_content?('Product 5')) refute(page.has_content?(t('workarea.storefront.pagination.next_page'))) click_link t('workarea.storefront.pagination.load_more') assert_current_path(storefront.search_path(q: 'Product')) assert(page.has_content?('Product 1')) assert(page.has_content?('Product 2')) assert(page.has_content?('Product 3')) assert(page.has_content?('Product 4')) assert(page.has_content?('Product 5')) assert(page.has_content?('Product 6')) refute(page.has_content?(t('workarea.storefront.pagination.load_more'))) find('a', text: 'Product 6').click page.execute_script("history.back()") assert_current_path(storefront.search_path(q: 'Product')) wait_for_xhr refute(page.has_content?(t('workarea.storefront.pagination.load_more'))) assert(page.has_content?('Product 1')) assert(page.has_content?('Product 2')) assert(page.has_content?('Product 3')) assert(page.has_content?('Product 4')) assert(page.has_content?('Product 5')) assert(page.has_content?('Product 6')) end end end