From 48023e3f36d51ffb4ba411870e066039e39fc114 Mon Sep 17 00:00:00 2001 From: Arthur Suzuki Date: Wed, 17 Feb 2021 02:57:57 +0100 Subject: [PATCH] Bug 7376: (follow-up) Make extended tests mock the actual desired behaviour --- t/db_dependent/Circulation.t | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index 3724051c22..9a9a962770 100755 --- a/t/db_dependent/Circulation.t +++ b/t/db_dependent/Circulation.t @@ -1820,7 +1820,7 @@ subtest 'AddIssue & AllowReturnToBranch' => sub { subtest 'CanBookBeReturned + UseBranchTransfertLimits' => sub { - plan tests => 31; + plan tests => 33; t::lib::Mocks::mock_preference( 'UseBranchTransferLimits', '1' ); @@ -1914,7 +1914,24 @@ 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( @@ -1947,7 +1964,7 @@ 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( @@ -1976,11 +1993,11 @@ subtest 'CanBookBeReturned + UseBranchTransfertLimits' => sub { is ( $homebranch->{branchcode} , $message , 'Redirect to homebranch'); 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 'CanBookBeIssued + Koha::Patron->is_debarred|has_overdues' => sub { -- 2.11.0