Bug 18624: Regression test for 'any' vs 'all'
This test makes it explicit that the only string producing _all as index on build_authorities_query_compat is 'all'. To test: - Apply this patch - Run: $ sudo koha-shell kohadev k$ cd kohaclone k$ prove t/db_dependent/Koha/SearchEngine/Elasticsearch/QueryBuilder.t => FAIL: Test fails because the list of valid values is wrong in Koha. Note: this list has to be in sync with the templates passing the same values. A followup will be added to fix a discrepancy found between OPAC and Intranet. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
ff41b87302
commit
b308b0814b
1 changed files with 57 additions and 0 deletions
|
@ -0,0 +1,57 @@
|
|||
#!/usr/bin/perl
|
||||
#
|
||||
# This file is part of Koha.
|
||||
#
|
||||
# Koha is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Koha is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Koha; if not, see <http://www.gnu.org/licenses>.
|
||||
|
||||
use Modern::Perl;
|
||||
|
||||
use Test::More tests => 1;
|
||||
use Test::Exception;
|
||||
|
||||
use Koha::Database;
|
||||
use Koha::SearchEngine::Elasticsearch::QueryBuilder;
|
||||
|
||||
subtest 'build_authorities_query_compat() tests' => sub {
|
||||
|
||||
my $qb;
|
||||
|
||||
ok(
|
||||
$qb = Koha::SearchEngine::Elasticsearch::QueryBuilder->new({ 'index' => 'authorities' }),
|
||||
'Creating new query builder object for authorities'
|
||||
);
|
||||
|
||||
my $koha_to_index_name = $Koha::SearchEngine::Elasticsearch::QueryBuilder::koha_to_index_name;
|
||||
my $search_term = 'a';
|
||||
|
||||
foreach my $koha_name ( keys %{ $koha_to_index_name } ) {
|
||||
my $query = $qb->build_authorities_query_compat( [ $koha_name ], undef, undef, ['contains'], [$search_term], 'AUTH_TYPE', 'asc' );
|
||||
if ( $koha_name eq 'all' ) {
|
||||
is( $query->{query}->{bool}->{should}[0]->{match}->{_all},
|
||||
$search_term);
|
||||
} else {
|
||||
is( $query->{query}->{bool}->{should}[0]->{match}->{$koha_to_index_name->{$koha_name}},
|
||||
$search_term);
|
||||
}
|
||||
}
|
||||
|
||||
# Failing case
|
||||
throws_ok {
|
||||
$qb->build_authorities_query_compat( [ 'tomas' ], undef, undef, ['contains'], [$search_term], 'AUTH_TYPE', 'asc' );
|
||||
}
|
||||
'Koha::Exceptions::WrongParameter',
|
||||
'Exception thrown on invalid value in the marclist param';
|
||||
};
|
||||
|
||||
1;
|
Loading…
Reference in a new issue