From 99963c2dde849909543bf1e2bbf1ffbb07ef1b69 Mon Sep 17 00:00:00 2001 From: davidtrussler Date: Thu, 22 Aug 2024 10:58:05 +0100 Subject: [PATCH] Temporarily restrict number of results retured prior to pagination --- app/presenters/filtered_editions_presenter.rb | 8 +++++++- .../presenters/filtered_editions_presenter_test.rb | 13 +++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/presenters/filtered_editions_presenter.rb b/app/presenters/filtered_editions_presenter.rb index 21540c217..c8540e9a8 100644 --- a/app/presenters/filtered_editions_presenter.rb +++ b/app/presenters/filtered_editions_presenter.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class FilteredEditionsPresenter + ITEMS_PER_PAGE = 20 + def initialize(states_filter: [], assigned_to_filter: nil, format_filter: nil, title_filter: nil) @states_filter = states_filter || [] @assigned_to_filter = assigned_to_filter @@ -16,7 +18,11 @@ def editions result = editions_by_format result = apply_states_filter(result) result = apply_assigned_to_filter(result) - apply_title_filter(result) + result = apply_title_filter(result) + result = result.where.not(_type: "PopularLinksEdition") + # Sets a temporary limit of one page and twenty items + # Pagination to follow + result.page(1).per(ITEMS_PER_PAGE) end private diff --git a/test/unit/presenters/filtered_editions_presenter_test.rb b/test/unit/presenters/filtered_editions_presenter_test.rb index 28cfdef27..5eefb21e5 100644 --- a/test/unit/presenters/filtered_editions_presenter_test.rb +++ b/test/unit/presenters/filtered_editions_presenter_test.rb @@ -60,7 +60,7 @@ class FilteredEditionsPresenterTest < ActiveSupport::TestCase guide = FactoryBot.create(:guide_edition) FactoryBot.create(:completed_transaction_edition) - filtered_editions = FilteredEditionsPresenter.new(format_filter: "guide").editions + filtered_editions = FilteredEditionsPresenter.new(format_filter: "guide").editions.to_a assert_equal([guide], filtered_editions) end @@ -78,7 +78,16 @@ class FilteredEditionsPresenterTest < ActiveSupport::TestCase guide_fawkes = FactoryBot.create(:guide_edition, title: "Guide Fawkes") FactoryBot.create(:guide_edition, title: "Hitchhiker's Guide") - filtered_editions = FilteredEditionsPresenter.new(title_filter: "Fawkes").editions + filtered_editions = FilteredEditionsPresenter.new(title_filter: "Fawkes").editions.to_a + + assert_equal([guide_fawkes], filtered_editions) + end + + should "not return popular links" do + guide_fawkes = FactoryBot.create(:guide_edition) + FactoryBot.create(:popular_links) + + filtered_editions = FilteredEditionsPresenter.new.editions.to_a assert_equal([guide_fawkes], filtered_editions) end