diff --git a/app/presenters/result_set_presenter.rb b/app/presenters/result_set_presenter.rb index 8fe8b9aa2..b700dbc0a 100644 --- a/app/presenters/result_set_presenter.rb +++ b/app/presenters/result_set_presenter.rb @@ -82,6 +82,7 @@ def document_list_component_data(documents_to_convert:) content_item:, debug_score:, include_ecommerce:, + full_size_description: content_item.all_content_finder?, ).document_list_component_data end end diff --git a/app/presenters/search_result_presenter.rb b/app/presenters/search_result_presenter.rb index 3e9fcf29a..98c7940d7 100644 --- a/app/presenters/search_result_presenter.rb +++ b/app/presenters/search_result_presenter.rb @@ -14,7 +14,7 @@ class SearchResultPresenter :original_rank, to: :document - def initialize(document:, rank:, metadata_presenter_class:, doc_count:, facets:, content_item:, debug_score:, result_number:, include_ecommerce: true) + def initialize(document:, rank:, metadata_presenter_class:, doc_count:, facets:, content_item:, debug_score:, result_number:, include_ecommerce: true, full_size_description: false) @document = document @rank = rank @metadata = metadata_presenter_class.new(document.metadata(facets)).present @@ -23,6 +23,7 @@ def initialize(document:, rank:, metadata_presenter_class:, doc_count:, facets:, @result_number = result_number @content_item = content_item @include_ecommerce = include_ecommerce + @full_size_description = full_size_description end def document_list_component_data @@ -31,6 +32,7 @@ def document_list_component_data text: title, path: link, description: sanitize(summary_text), + full_size_description:, data_attributes: ga4_ecommerce_data(link), }, metadata: structure_metadata, @@ -110,5 +112,5 @@ def ga4_ecommerce_data(path) } end - attr_reader :document, :metadata, :content_item, :result_number + attr_reader :document, :metadata, :content_item, :result_number, :full_size_description end diff --git a/spec/presenters/result_set_presenter_spec.rb b/spec/presenters/result_set_presenter_spec.rb index 013257deb..304b82acd 100644 --- a/spec/presenters/result_set_presenter_spec.rb +++ b/spec/presenters/result_set_presenter_spec.rb @@ -132,6 +132,7 @@ text: "document_title", path: "/path/to/doc", description: "document_description", + full_size_description: false, data_attributes: { ga4_ecommerce_path: "/path/to/doc", ga4_ecommerce_content_id: "content_id", @@ -158,6 +159,16 @@ search_result_objects = subject.search_results_content[:document_list_component_data] expect(search_result_objects.first).to eql(expected_hash) end + + context "on the all content finder" do + before do + allow(content_item).to receive(:all_content_finder?).and_return(true) + end + + it "shows the full size description" do + expect(subject.search_results_content[:document_list_component_data].first[:link][:full_size_description]).to be true + end + end end context "with &debug_score=1" do diff --git a/spec/presenters/search_result_presenter_spec.rb b/spec/presenters/search_result_presenter_spec.rb index f4e0b5ca2..2058c9c80 100644 --- a/spec/presenters/search_result_presenter_spec.rb +++ b/spec/presenters/search_result_presenter_spec.rb @@ -11,6 +11,7 @@ content_item:, facets:, debug_score:, + full_size_description:, ) end @@ -50,6 +51,7 @@ let(:description) { "I am a document. I am full of words and that." } let(:content_id) { "content_id" } let(:show_summaries) { true } + let(:full_size_description) { false } let(:facets) { [] } @@ -63,6 +65,7 @@ text: title, path: link, description: "I am a document. I am full of words and that.", + full_size_description: false, data_attributes: { ga4_ecommerce_path: link, ga4_ecommerce_content_id: "content_id", @@ -155,6 +158,14 @@ end end end + + context "with full size description" do + let(:full_size_description) { true } + + it "returns link items with the full_size_description attribute set to true" do + expect(subject.document_list_component_data[:link][:full_size_description]).to be(true) + end + end end describe "structure_metadata" do