View | Details | Raw Unified | Return to bug 33146
Collapse All | Expand All

(-)a/t/db_dependent/api/v1/items.t (-14 / +19 lines)
Lines 27-32 use Test::Warn; Link Here
27
use t::lib::TestBuilder;
27
use t::lib::TestBuilder;
28
use t::lib::Mocks;
28
use t::lib::Mocks;
29
29
30
use Mojo::JSON qw(encode_json);
31
30
use C4::Auth;
32
use C4::Auth;
31
use Koha::Items;
33
use Koha::Items;
32
use Koha::Database;
34
use Koha::Database;
Lines 105-119 subtest 'list_public() tests' => sub { Link Here
105
107
106
    $schema->storage->txn_begin;
108
    $schema->storage->txn_begin;
107
109
108
    # Clean out all demo items
110
    my $patron = $builder->build_object( { class => 'Koha::Patrons' } );
109
    Koha::Items->delete();
110
111
111
    my $patron = $builder->build_object({ class => 'Koha::Patrons' });
112
    my $mocked_category = Test::MockModule->new('Koha::Patron::Category');
113
    my $exception = 1;
112
    my $exception = 1;
114
    $mocked_category->mock( 'override_hidden_items', sub {
113
115
        return $exception;
114
    my $mocked_category = Test::MockModule->new('Koha::Patron::Category');
116
    });
115
    $mocked_category->mock(
116
        'override_hidden_items',
117
        sub {
118
            return $exception;
119
        }
120
    );
117
121
118
    my $password = 'thePassword123';
122
    my $password = 'thePassword123';
119
    $patron->set_password( { password => $password, skip_validation => 1 } );
123
    $patron->set_password( { password => $password, skip_validation => 1 } );
Lines 186-213 subtest 'list_public() tests' => sub { Link Here
186
        return $rules;
190
        return $rules;
187
    });
191
    });
188
192
193
    my $query = encode_json({ item_id => [ $item_1->id, $item_2->id, $item_3->id, $item_4->id, $item_5->id, $item_6->id ] });
194
189
    subtest 'anonymous access' => sub {
195
    subtest 'anonymous access' => sub {
190
        plan tests => 21;
196
        plan tests => 21;
191
197
192
        t::lib::Mocks::mock_preference( 'hidelostitems', 0 );
198
        t::lib::Mocks::mock_preference( 'hidelostitems', 0 );
193
        my $res = $t->get_ok( "/api/v1/public/items" )->status_is(200)->tx->res->json;
199
        my $res = $t->get_ok( "/api/v1/public/items?q=" . $query )->status_is(200)->tx->res->json;
194
        is( scalar @{ $res }, 6, 'No rules set, hidelostitems unset, all items returned');
200
        is( scalar @{ $res }, 6, 'No rules set, hidelostitems unset, all items returned');
195
201
196
        t::lib::Mocks::mock_preference( 'hidelostitems', 1 );
202
        t::lib::Mocks::mock_preference( 'hidelostitems', 1 );
197
        $res = $t->get_ok( "/api/v1/public/items" )->status_is(200)->tx->res->json;
203
        $res = $t->get_ok( "/api/v1/public/items?q=" . $query )->status_is(200)->tx->res->json;
198
        is( scalar @{ $res }, 3, 'No rules set, hidelostitems set, 3 items hidden');
204
        is( scalar @{ $res }, 3, 'No rules set, hidelostitems set, 3 items hidden');
199
205
200
        t::lib::Mocks::mock_preference( 'hidelostitems', 0 );
206
        t::lib::Mocks::mock_preference( 'hidelostitems', 0 );
201
        $rules = { biblionumber => [ $biblio->biblionumber ] };
207
        $rules = { biblionumber => [ $biblio->biblionumber ] };
202
        $res = $t->get_ok( "/api/v1/public/items" )->status_is(200)->tx->res->json;
208
        $res = $t->get_ok( "/api/v1/public/items?q=" . $query )->status_is(200)->tx->res->json;
203
        is( scalar @{ $res }, 0, 'Biblionumber rule set, hidelostitems unset, all items hidden');
209
        is( scalar @{ $res }, 0, 'Biblionumber rule set, hidelostitems unset, all items hidden');
204
210
205
        $rules = { withdrawn => [ 1, 2 ] };
211
        $rules = { withdrawn => [ 1, 2 ] };
206
        $res = $t->get_ok( "/api/v1/public/items" )->status_is(200)->tx->res->json;
212
        $res = $t->get_ok( "/api/v1/public/items?q=" . $query )->status_is(200)->tx->res->json;
207
        is( scalar @{ $res }, 4, 'Withdrawn rule set, hidelostitems unset, 2 items hidden');
213
        is( scalar @{ $res }, 4, 'Withdrawn rule set, hidelostitems unset, 2 items hidden');
208
214
209
        $rules = { itype => [ $itype_1->itemtype ] };
215
        $rules = { itype => [ $itype_1->itemtype ] };
210
        $res = $t->get_ok( "/api/v1/public/items" )->status_is(200)->tx->res->json;
216
        $res = $t->get_ok( "/api/v1/public/items?q=" . $query )->status_is(200)->tx->res->json;
211
        is( scalar @{ $res }, 2, 'Itype rule set, hidelostitems unset, 4 items hidden');
217
        is( scalar @{ $res }, 2, 'Itype rule set, hidelostitems unset, 4 items hidden');
212
218
213
        $rules = { withdrawn => [ 1 ] };
219
        $rules = { withdrawn => [ 1 ] };
Lines 228-234 subtest 'list_public() tests' => sub { Link Here
228
234
229
        t::lib::Mocks::mock_preference( 'hidelostitems', 1 );
235
        t::lib::Mocks::mock_preference( 'hidelostitems', 1 );
230
        $rules = { withdrawn => [ 1, 2 ] };
236
        $rules = { withdrawn => [ 1, 2 ] };
231
        my $res = $t->get_ok("//$userid:$password@/api/v1/public/items")
237
        my $res = $t->get_ok("//$userid:$password@/api/v1/public/items?q=" . $query)
232
          ->status_is(200)->tx->res->json;
238
          ->status_is(200)->tx->res->json;
233
        is(
239
        is(
234
            scalar @{$res},
240
            scalar @{$res},
235
- 

Return to bug 33146