From 72bec7d58e17494ed3e8eca2f4d24b5647503d7c Mon Sep 17 00:00:00 2001 From: Baptiste Wojtkowski Date: Mon, 16 Dec 2024 12:18:54 +0100 Subject: [PATCH] Bug 7376: (follow-up) Make extended tests mock the actual desired behaviour Signed-off-by: Julian Maurice --- t/db_dependent/Circulation.t | 39 +++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index 403c9e50..c3356d70 100755 --- a/t/db_dependent/Circulation.t +++ b/t/db_dependent/Circulation.t @@ -2843,7 +2843,7 @@ subtest 'CanBookBeIssued + Koha::Patron->is_debarred|has_overdues' => sub { }; subtest 'CanBookBeReturned + UseBranchTransfertLimits' => sub { - plan tests => 31; + plan tests => 33; t::lib::Mocks::mock_preference( 'UseBranchTransferLimits', '1' ); my $homebranch = $builder->build( { source => 'Branch' } ); @@ -2941,7 +2941,33 @@ subtest 'CanBookBeReturned + UseBranchTransfertLimits' => sub { # NOTE: This is the ONLY change that bug 7376 introduces currently. t::lib::Mocks::mock_preference( 'AllowReturnToBranch', 'anywhere' ); ( $allowed, $message ) = C4::Circulation::CanBookBeReturned( $item, $returnbranch ); - is( 1, $allowed, 'Allow return where returnbranch can be transfered to from anywhere' ); + is( + 1, $allowed, + 'Allow return where returnbranch can be transfered to holding (homebranch forbidden) from returnbranch' + ); + + my $limit_2 = Koha::Item::Transfer::Limit->new( + { + toBranch => $holdingbranch->{branchcode}, + fromBranch => $returnbranch->{branchcode}, + itemtype => $item->effective_itemtype, + } + )->store(); + + diag("Attempt return at returnbranch ('Anywhere' + Return -> Home and Return -> Holding limit)"); + + # NOTE: Should we prevent return here.. we cannot transfer from 'returnbranch' + # to 'homebranch' (But we can transfer back to 'holdingbranch'). + # NOTE: This is the ONLY change that bug 7376 introduces currently. + t::lib::Mocks::mock_preference( 'AllowReturnToBranch', 'anywhere' ); + ( $allowed, $message ) = C4::Circulation::CanBookBeReturned( $item, $returnbranch ); + is( + 0, $allowed, + 'Prevent return where item can\'t be transferred to both homebranch and holding from returnbranch' + ); + is( $homebranch->{branchcode}, $message, 'Redirect to homebranch' ); + + $limit_2->delete()->store()->discard_changes; # Set limit ( Return -> Holding denied) $limit->set( @@ -2975,7 +3001,10 @@ subtest 'CanBookBeReturned + UseBranchTransfertLimits' => sub { # to 'holdingbranch' (But we can transfer back to 'homebranch'). t::lib::Mocks::mock_preference( 'AllowReturnToBranch', 'anywhere' ); ( $allowed, $message ) = C4::Circulation::CanBookBeReturned( $item, $returnbranch ); - is( 1, $allowed, 'Allow return where returnbranch can be transfered to from anywhere' ); + is( + 1, $allowed, + 'Allow return where returnbranch can be transferred to homebranch (holdingbranch forbidden) from returnbranch' + ); # Set limit ( Holding -> Home denied) $limit->set( @@ -3005,11 +3034,11 @@ subtest 'CanBookBeReturned + UseBranchTransfertLimits' => sub { diag("Attempt return at returnbranch ('Anywhere' + Holding -> Home limit)"); - # NOTE: A return here can subsequently be transfered to back to homebranch + # NOTE: A return here can subsequently be transferred to back to homebranch # or holdingbranch. t::lib::Mocks::mock_preference( 'AllowReturnToBranch', 'anywhere' ); ( $allowed, $message ) = C4::Circulation::CanBookBeReturned( $item, $returnbranch ); - is( 1, $allowed, 'Allow return where returnbranch can be transfered to from anywhere' ); + is( 1, $allowed, 'Allow return where returnbranch can be transferred to from anywhere' ); }; subtest 'Statistic patrons "X"' => sub { -- 2.30.2