From 2af1cb9d1482bdfb266a46ef00f6fa37597f32d3 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Thu, 14 Sep 2023 13:21:44 +0000 Subject: [PATCH] Bug 33406: (QA follow-up) Adjust tests and tidy Rather than test that nothing is returned, we want to test that the terms are filtered as expected. This also avoids the possibility of the tests failing in a db where there is a record for Donald Duck Signed-off-by: Nick Clemens Signed-off-by: Tomas Cohen Arazi (cherry picked from commit 3d7b60dc90142b171b6aaa268bdf2abf917b3739) Signed-off-by: Fridolin Somers (cherry picked from commit 4cc41203223e5e43b1289e819682f2b1b38efde6) Signed-off-by: Matt Blenkinsop --- authorities/authorities-home.pl | 14 ++++---------- t/Koha/SearchEngine/Elasticsearch/Search.t | 9 +++++---- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/authorities/authorities-home.pl b/authorities/authorities-home.pl index 84122ed0e8..467da48e77 100755 --- a/authorities/authorities-home.pl +++ b/authorities/authorities-home.pl @@ -97,25 +97,19 @@ if ( $op eq "do_search" ) { } ); - my $builder = Koha::SearchEngine::QueryBuilder->new( - { index => $Koha::SearchEngine::AUTHORITIES_INDEX } ); - my $searcher = Koha::SearchEngine::Search->new( - { index => $Koha::SearchEngine::AUTHORITIES_INDEX } ); + my $builder = Koha::SearchEngine::QueryBuilder->new( { index => $Koha::SearchEngine::AUTHORITIES_INDEX } ); + my $searcher = Koha::SearchEngine::Search->new( { index => $Koha::SearchEngine::AUTHORITIES_INDEX } ); my $search_query = $builder->build_authorities_query_compat( [$marclist], [$and_or], [$excluding], [$operator], [$value], $authtypecode, $orderby ); my ( $results, $total ); - eval { - ( $results, $total ) = $searcher->search_auth_compat( - $search_query, $offset, $resultsperpage - ); - }; + eval { ( $results, $total ) = $searcher->search_auth_compat( $search_query, $offset, $resultsperpage ); }; if ($@) { my $query_error = q{}; $query_error .= $@ if $@; - $template->param(query_error => $query_error); + $template->param( query_error => $query_error ); } $template->param( search_query => $search_query ) if C4::Context->preference('DumpSearchQueryTemplate'); diff --git a/t/Koha/SearchEngine/Elasticsearch/Search.t b/t/Koha/SearchEngine/Elasticsearch/Search.t index 046767cf01..6353793b10 100755 --- a/t/Koha/SearchEngine/Elasticsearch/Search.t +++ b/t/Koha/SearchEngine/Elasticsearch/Search.t @@ -45,12 +45,13 @@ subtest 'search_auth_compat' => sub { my $search_query = $builder->build_authorities_query_compat( ['mainmainentry'], ['and'], [''], ['contains'], - ['Donald - Duck'], '', 'HeadingAsc' + ['Donald - ^ \ ~ + Duck'], '', 'HeadingAsc' ); - my ( $bad_results, undef ) = $search->search_auth_compat( $search_query, 0, 20, undef ); - - is( @$bad_results[0], undef, 'We expect no record because it doesnt exist' ); + is( + $search_query->{query}->{bool}->{must}->[0]->{query_string}->{query}, '(Donald*) AND (Duck*)', + "Reserved characters -, ^, \\, ~, + have been removed from search query" + ); my $module = Test::MockModule->new('Koha::SearchEngine::Elasticsearch::Search'); $module->mock( 'count_auth_use', sub { return 1 } ); -- 2.39.5