From 50d614c36b731b67feeaf220c9b4637df95a3cc7 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 20 Aug 2020 14:28:46 +0100 Subject: [PATCH] Bug 18501: (follow-up) Test undefined userenv behaviour This patch adds a test to ensure that the 'Koha::Item->store' method will function when the userenv is not set --- t/db_dependent/Koha/Items.t | 51 ++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Koha/Items.t b/t/db_dependent/Koha/Items.t index 68232df0ef..8f5a25ec7c 100644 --- a/t/db_dependent/Koha/Items.t +++ b/t/db_dependent/Koha/Items.t @@ -136,7 +136,7 @@ subtest 'store' => sub { }; subtest '_lost_found_trigger' => sub { - plan tests => 6; + plan tests => 7; t::lib::Mocks::mock_preference( 'WhenLostChargeReplacementFee', 1 ); t::lib::Mocks::mock_preference( 'WhenLostForgiveFine', 0 ); @@ -758,6 +758,53 @@ subtest 'store' => sub { is( $item->{_refunded}, undef, 'No refund triggered' ); }; + + subtest 'Continue when userenv is not set' => sub { + plan tests => 1; + + my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); + my $barcode = 'KD123456795'; + my $replacement_amount = 100; + my $processfee_amount = 20; + + my $item_type = $builder->build_object( + { + class => 'Koha::ItemTypes', + value => { + notforloan => undef, + rentalcharge => 0, + defaultreplacecost => undef, + processfee => 0, + rentalcharge_daily => 0, + } + } + ); + my $item = Koha::Item->new( + { + biblionumber => $biblio->biblionumber, + homebranch => $library->branchcode, + holdingbranch => $library->branchcode, + barcode => $barcode, + replacementprice => $replacement_amount, + itype => $item_type->itemtype + }, + )->store; + + my $issue = + C4::Circulation::AddIssue( $patron->unblessed, $barcode ); + + # Simulate item marked as lost + $item->itemlost(1)->store; + C4::Circulation::LostItem( $item->itemnumber, 1 ); + + # Unset the userenv + C4::Context->_new_userenv(undef); + + # Simluate item marked as found + $item->itemlost(0)->store; + is( $item->{_refunded}, 1, 'No refund triggered' ); + + }; }; }; @@ -815,6 +862,8 @@ subtest 'biblioitem' => sub { is( $biblioitem->biblionumber, $retrieved_item_1->biblionumber, 'Koha::Item->biblioitem should return the correct biblioitem' ); }; +# Restore userenv +t::lib::Mocks::mock_userenv({ branchcode => $library->{branchcode} }); subtest 'checkout' => sub { plan tests => 5; my $item = Koha::Items->find( $new_item_1->itemnumber ); -- 2.20.1