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

(-)a/t/db_dependent/api/v1/biblios.t (-2 / +85 lines)
Lines 20-26 use Modern::Perl; Link Here
20
use utf8;
20
use utf8;
21
use Encode;
21
use Encode;
22
22
23
use Test::More tests => 5;
23
use Test::More tests => 6;
24
use Test::MockModule;
24
use Test::MockModule;
25
use Test::Mojo;
25
use Test::Mojo;
26
use Test::Warn;
26
use Test::Warn;
Lines 494-496 subtest 'pickup_locations() tests' => sub { Link Here
494
494
495
    $schema->storage->txn_rollback;
495
    $schema->storage->txn_rollback;
496
};
496
};
497
- 
497
498
subtest 'get_items_public() tests' => sub {
499
500
    plan tests => 15;
501
502
    $schema->storage->txn_begin;
503
504
    my $override_hidden_items = 0;
505
506
    my $mocked_category = Test::MockModule->new('Koha::Patron::Category');
507
    $mocked_category->mock(
508
        'override_hidden_items',
509
        sub {
510
            return $override_hidden_items;
511
        }
512
    );
513
514
    my $rules = undef;
515
516
    my $mocked_context = Test::MockModule->new('C4::Context');
517
    $mocked_context->mock(
518
        'yaml_preference',
519
        sub {
520
            return $rules;
521
        }
522
    );
523
524
    my $patron   = $builder->build_object( { class => 'Koha::Patrons' } );
525
    my $password = 'thePassword123';
526
    $patron->set_password( { password => $password, skip_validation => 1 } );
527
    $patron->discard_changes;
528
    my $userid = $patron->userid;
529
530
    my $biblio = $builder->build_sample_biblio();
531
532
    $t->get_ok(
533
        "//$userid:$password@/api/v1/public/biblios/" . $biblio->id . "/items" )
534
      ->status_is(200)->json_is( '' => [], 'No items on the biblio' );
535
536
    my $item_1 = $builder->build_sample_item( { biblionumber => $biblio->id } );
537
    my $item_2 = $builder->build_sample_item(
538
        { biblionumber => $biblio->id, withdrawn => 1 } );
539
540
    $t->get_ok( "//$userid:$password@/api/v1/public/biblios/"
541
          . $biblio->biblionumber
542
          . "/items" )->status_is(200)->json_is(
543
        '' => [
544
            $item_1->to_api( { public => 1 } ),
545
            $item_2->to_api( { public => 1 } )
546
        ],
547
        'The items are returned'
548
          );
549
550
    $rules = { withdrawn => ['1'] };
551
552
    $t->get_ok( "//$userid:$password@/api/v1/public/biblios/"
553
          . $biblio->biblionumber
554
          . "/items" )->status_is(200)->json_is(
555
        '' => [ $item_1->to_api( { public => 1 } ) ],
556
        'The items are returned, hidden one is not returned'
557
          );
558
559
    $t->get_ok( "/api/v1/public/biblios/"
560
          . $biblio->biblionumber
561
          . "/items" )->status_is(200)->json_is(
562
        '' => [ $item_1->to_api( { public => 1 } ) ],
563
        'Anonymous user, items are returned, hidden one is not returned'
564
          );
565
566
567
    $override_hidden_items = 1;
568
569
    $t->get_ok( "//$userid:$password@/api/v1/public/biblios/"
570
          . $biblio->biblionumber
571
          . "/items" )->status_is(200)->json_is(
572
        '' => [
573
            $item_1->to_api( { public => 1 } ),
574
            $item_2->to_api( { public => 1 } )
575
        ],
576
        'The items are returned, the patron category has an override'
577
          );
578
579
    $schema->storage->txn_rollback;
580
};

Return to bug 27358