Browse Source

Bug 3142: Add tests

And fix a bug!

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
21.11.x
Jonathan Druart 3 years ago
parent
commit
70a303a5de
  1. 2
      Koha/Items.pm
  2. 17
      t/db_dependent/Koha/Items.t

2
Koha/Items.pm

@ -65,7 +65,7 @@ sub filter_by_for_hold {
withdrawn => 0,
notforloan => { '<=' => 0 }
, # items with negative or zero notforloan value are holdable
( C4::Context->preference('AllowHoldsOnDamagedItems') ? ( damaged => 0 ) : () ),
( ! C4::Context->preference('AllowHoldsOnDamagedItems' ) ? ( damaged => 0 ) : () ),
itype => { -not_in => \@hold_not_allowed_itypes },
}
);

17
t/db_dependent/Koha/Items.t

@ -1510,7 +1510,7 @@ subtest 'can_be_transferred' => sub {
};
subtest 'filter_by_for_hold' => sub {
plan tests => 4;
plan tests => 8;
my $biblio = $builder->build_sample_biblio;
is( $biblio->items->filter_by_for_hold->count, 0, 'no item yet' );
@ -1521,6 +1521,21 @@ subtest 'filter_by_for_hold' => sub {
$builder->build_sample_item( { biblionumber => $biblio->biblionumber, notforloan => -1 } );
is( $biblio->items->filter_by_for_hold->count, 2, '2 items for hold' );
$builder->build_sample_item( { biblionumber => $biblio->biblionumber, itemlost => 0 } );
$builder->build_sample_item( { biblionumber => $biblio->biblionumber, itemlost => 1 } );
is( $biblio->items->filter_by_for_hold->count, 3, '3 items for hold - itemlost' );
$builder->build_sample_item( { biblionumber => $biblio->biblionumber, withdrawn => 0 } );
$builder->build_sample_item( { biblionumber => $biblio->biblionumber, withdrawn => 1 } );
is( $biblio->items->filter_by_for_hold->count, 4, '4 items for hold - withdrawn' );
$builder->build_sample_item( { biblionumber => $biblio->biblionumber, damaged => 0 } );
$builder->build_sample_item( { biblionumber => $biblio->biblionumber, damaged => 1 } );
t::lib::Mocks::mock_preference('AllowHoldsOnDamagedItems', 0);
is( $biblio->items->filter_by_for_hold->count, 5, '5 items for hold - not damaged if not AllowHoldsOnDamagedItems' );
t::lib::Mocks::mock_preference('AllowHoldsOnDamagedItems', 1);
is( $biblio->items->filter_by_for_hold->count, 6, '6 items for hold - damaged if AllowHoldsOnDamagedItems' );
$biblio->delete;
};

Loading…
Cancel
Save