From 914fc7b2f40247949830722062d0cea445707618 Mon Sep 17 00:00:00 2001 From: Stuart Owen <stuart.owen@manchester.ac.uk> Date: Tue, 9 Jan 2024 14:27:03 +0000 Subject: [PATCH] remember that the external search has been checked #1712 --- app/controllers/search_controller.rb | 1 + test/functional/search_controller_test.rb | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 30489b4b23..2b100795cb 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -37,6 +37,7 @@ def perform_search(sources) end if search_params[:include_external_search] == '1' + @include_external_search = true @external_results = Seek::ExternalSearch.instance.external_search(downcase_query, @search_type&.downcase) end diff --git a/test/functional/search_controller_test.rb b/test/functional/search_controller_test.rb index e6f628b007..97cf320008 100644 --- a/test/functional/search_controller_test.rb +++ b/test/functional/search_controller_test.rb @@ -18,6 +18,9 @@ class SearchControllerTest < ActionController::TestCase assert_select '.list_item_title a[href=?]', document_path(doc) end end + + refute assigns(:include_external_search) + assert_select 'div#advanced-search input#include_external_search[type=checkbox]:not(checked)' end test 'search result order retained' do @@ -175,4 +178,22 @@ class SearchControllerTest < ActionController::TestCase assert_select '#more-results', count: 0 end + + test 'remember external search' do + FactoryBot.create(:model, policy: FactoryBot.create(:public_policy)) + + VCR.use_cassette('biomodels/search') do + with_config_value(:external_search_enabled, true) do + Model.stub(:solr_cache, -> (q) { Model.pluck(:id).last(3) }) do + get :index, params: { q: 'yeast', include_external_search: '1' } + end + end + end + + assert_equal 1, assigns(:results)['Model'].count + assert_equal 25, assigns(:external_results).count + + assert assigns(:include_external_search) + assert_select 'div#advanced-search input#include_external_search[type=checkbox][checked=checked]' + end end