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 <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Nick Clemens 2023-09-14 13:21:44 +00:00 committed by Tomas Cohen Arazi
parent 27c6171222
commit 3d7b60dc90
No known key found for this signature in database
GPG Key ID: 0A272EA1B2F3C15F
2 changed files with 9 additions and 14 deletions

View File

@ -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');

View File

@ -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 } );