Bug 26265: (QA follow-up) Remove g option from regex, add few dirs
[koha-equinox.git] / t / Koha_SearchEngine_Elasticsearch_Browse.t
1 #!/usr/bin/perl
2
3 # Copyright 2015 Catalyst IT
4 #
5 # This file is part of Koha.
6 #
7 # Koha is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3 of the License, or
10 # (at your option) any later version.
11 #
12 # Koha is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with Koha; if not, see <http://www.gnu.org/licenses>.
19
20 use Modern::Perl;
21
22 use Test::More;
23
24 use_ok('Koha::SearchEngine::Elasticsearch::Browse');
25
26 # testing browse itself not implemented as it'll require a running ES
27 can_ok('Koha::SearchEngine::Elasticsearch::Browse',
28     qw/ _build_query browse /);
29
30 subtest "_build_query tests" => sub {
31     plan tests => 2;
32
33     my $browse = Koha::SearchEngine::Elasticsearch::Browse->new({index=>'dummy'});
34     my $q = $browse->_build_query('foo', 'title');
35     is_deeply($q, { size => 1,
36         suggest => {
37             suggestions => {
38                 text       => 'foo',
39                 completion => {
40                     field => 'title__suggestion',
41                     size  => 500,
42                     fuzzy => {
43                         fuzziness => 1,
44                     }
45                 }
46             }
47         }
48     }, 'No fuzziness or size specified');
49
50     # Note that a fuzziness of 4 will get reduced to 2.
51     $q = $browse->_build_query('foo', 'title', { fuzziness => 4, count => 400 });
52     is_deeply($q, { size => 1,
53         suggest => {
54             suggestions => {
55                 text       => 'foo',
56                 completion => {
57                     field => 'title__suggestion',
58                     size  => 400,
59                     fuzzy => {
60                         fuzziness => 2,
61                     }
62                 }
63             }
64         }
65     }, 'Fuzziness and size specified');
66 };
67
68 done_testing();