Skip to content

Commit

Permalink
Keep using old component for backwards compatibility
Browse files Browse the repository at this point in the history
- Test components

Co-authored-by: Jane Sandberg <sandbergja@users.noreply.github.com>
  • Loading branch information
maxkadel and sandbergja committed Oct 29, 2024
1 parent 4d5d149 commit 7d0ec28
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 5 deletions.
2 changes: 1 addition & 1 deletion app/components/blacklight/search_context_component.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class SearchContextComponent < Blacklight::Component
with_collection_parameter :search_context

def initialize(search_context:, search_session:)
Blacklight.deprecation.warn("Blacklight::SearchContextComponent is deprecated and will be moved to Blacklight::SearchContext::ServerItemPaginationComponent in Blacklight 8.0.0")
Deprecation.warn("Blacklight::SearchContextComponent is deprecated and will be moved to Blacklight::SearchContext::ServerItemPaginationComponent in Blacklight 8.0.0")
@search_context = search_context
@search_session = search_session
end
Expand Down
2 changes: 1 addition & 1 deletion app/views/catalog/_previous_next_doc.html.erb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
<% Deprecation.warn(self, 'The partial _previous_next_doc.html.erb will be removed in 8.0. Render Blacklight::SearchContext::ServerItemPaginationComponent instead.') %>
<%= render(Blacklight::SearchContext::ServerItemPaginationComponent.new(search_context: @search_context, search_session: search_session, current_document: @current_document)) %>
<%= render(Blacklight::SearchContextComponent.new(search_context: @search_context, search_session: search_session)) %>
2 changes: 1 addition & 1 deletion app/views/catalog/_show_main_content.html.erb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<%= render(Blacklight::SearchContext::ServerItemPaginationComponent.new(search_context: @search_context, search_session: search_session, current_document: @document)) if search_session['document_id'] == @document.id %>
<%= render(Blacklight::SearchContextComponent.new(search_context: @search_context, search_session: search_session)) if search_session['document_id'] == @document.id %>

<% @page_title = t('blacklight.search.show.title', document_title: Deprecation.silence(Blacklight::BlacklightHelperBehavior) { document_show_html_title }, application_name: application_name).html_safe %>
<% content_for(:head) { render_link_rel_alternates } %>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe Blacklight::SearchContext::ServerItemPaginationComponent, type: :component do
subject(:render) { render_inline(instance) }

let(:current_document_id) { 9 }
let(:current_document) { SolrDocument.new(id: current_document_id) }
let(:search_session) { { 'document_id' => current_document_id, 'counter' => 1, 'total' => '3' } }
let(:instance) { described_class.new(search_context: search_context, search_session: search_session, current_document: current_document) }

before do
allow(controller).to receive(:search_session).and_return(search_session)
allow(controller).to receive(:current_search_session).and_return(double(id: current_document_id))
controller.class.helper_method :search_session
controller.class.helper_method :current_search_session
end

context 'when there is next and previous' do
let(:search_context) { { next: next_doc, prev: prev_doc } }
let(:prev_doc) { SolrDocument.new(id: '777') }
let(:next_doc) { SolrDocument.new(id: '888') }

before do
# allow(controller).to receive(:controller_tracking_method).and_return('track_catalog_path')

allow(controller).to receive_messages(controller_name: 'catalog', link_to_previous_document: '', link_to_next_document: '')
end

it "renders content" do
expect(render.css('.page-links').to_html).not_to be_blank
end
end
end
31 changes: 31 additions & 0 deletions spec/components/blacklight/search_context_component_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# frozen_string_literal: true

require 'spec_helper'
RSpec.describe Blacklight::SearchContextComponent, type: :component do
subject(:render) { render_inline(instance) }

let(:current_document_id) { 9 }
let(:search_session) { { 'document_id' => current_document_id, 'counter' => 1, 'total' => '3' } }
let(:instance) { described_class.new(search_context: search_context, search_session: search_session) }

before do
allow(controller).to receive(:search_session).and_return(search_session)
allow(controller).to receive(:current_search_session).and_return(double(id: current_document_id))
controller.class.helper_method :search_session
controller.class.helper_method :current_search_session
end

context 'when there is next and previous' do
let(:search_context) { { next: next_doc, prev: prev_doc } }
let(:prev_doc) { SolrDocument.new(id: '777') }
let(:next_doc) { SolrDocument.new(id: '888') }

before do
allow(controller).to receive_messages(controller_name: 'catalog', link_to_previous_document: '', link_to_next_document: '')
end

it "renders content" do
expect(render.css('.page-links').to_html).not_to be_blank
end
end
end
2 changes: 0 additions & 2 deletions spec/views/catalog/_previous_next_doc.html.erb_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,12 @@

it "without next or previous does not render content" do
assign(:search_context, {})
assign(:current_document, SolrDocument.new(id: 9))
render
expect(rendered).not_to have_selector ".pagination-search-widgets"
end

it "with next or previous does render content" do
assign(:search_context, next: 'foo', prev: 'bar')
assign(:current_document, SolrDocument.new(id: 9))
allow(view).to receive(:link_to_previous_document).and_return('')
allow(view).to receive(:item_page_entry_info).and_return('')
allow(view).to receive(:link_to_next_document).and_return('')
Expand Down

0 comments on commit 7d0ec28

Please sign in to comment.