From f2d2f6dfdf6f08769f8fa86589c6d2aa4a66cd07 Mon Sep 17 00:00:00 2001 From: Lari Taskula Date: Tue, 29 Aug 2023 09:34:04 +0000 Subject: [PATCH] Bug 34639: Add tests To reproduce: 1. Add an item to library A 2. Go to Circulation -> Transfer 3. Transfer the item from library A to another library B 4. Set your currently logged in library to library B 5. Check-in the item 6. Observe message "Item received from A" 7. View the bibliographic record of the item (catalogue/detail.pl) 8. Observe item in "In transit from A to B since xx/xx/xxxx Available" To test: 1. prove t/db_dependent/Koha/Item.t Signed-off-by: Jonathan Druart --- t/db_dependent/Koha/Item.t | 69 +++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Koha/Item.t b/t/db_dependent/Koha/Item.t index 819f897e0e5..176e8feed17 100755 --- a/t/db_dependent/Koha/Item.t +++ b/t/db_dependent/Koha/Item.t @@ -20,7 +20,7 @@ use Modern::Perl; use utf8; -use Test::More tests => 29; +use Test::More tests => 30; use Test::Exception; use Test::MockModule; @@ -1176,6 +1176,73 @@ subtest 'get_transfers' => sub { $schema->storage->txn_rollback; }; +subtest 'Test for relationship between item and current_branchtransfers' => sub { + plan tests => 4; + + $schema->storage->txn_begin; + + my $item = $builder->build_sample_item(); + my $transfer = $builder->build_object( + { + class => 'Koha::Item::Transfers', + value => { + itemnumber => $item->itemnumber, + datesent => dt_from_string, + datearrived => dt_from_string, + datecancelled => undef, + } + } + ); + + my $transfer_item = $transfer->item; + my $biblio = Koha::Biblios->find( $transfer_item->biblionumber ); + + my $current_branchtransfers = Koha::Items->search( + { 'me.itemnumber' => $transfer_item->itemnumber }, + { prefetch => ['current_branchtransfers'] } + ); + + my $item_with_branchtransfers = $current_branchtransfers->next; + + is( + $transfer_item->itemnumber, + $item_with_branchtransfers->itemnumber, + 'following two items are the same' + ); + + # following two tests should produce the same result + is( + $transfer_item->get_transfer, + undef, + 'Koha::Item->get_transfer returns undef with no active transfers' + ); + is( + $item_with_branchtransfers->get_transfer, undef, + 'prefetched result->get_transfer returns undef with no active transfers' + ); + + $transfer->set( + { + datearrived => undef, + } + )->store; + + $current_branchtransfers = Koha::Items->search( + { 'me.itemnumber' => $transfer_item->itemnumber }, + { prefetch => ['current_branchtransfers'] } + ); + + $item_with_branchtransfers = $current_branchtransfers->next; + + is( + $transfer_item->get_transfer->branchtransfer_id, + $item_with_branchtransfers->get_transfer->branchtransfer_id, + 'an active transfer produces same branchtransfer_id for both methods' + ); + + $schema->storage->txn_rollback; +}; + subtest 'Tests for relationship between item and item_orders via aqorders_item' => sub { plan tests => 3; -- 2.25.1