From 1e11975802d67c57e4f4f66c2d62fa8bfa812538 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 --- t/db_dependent/Koha/Item.t | 61 +++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Koha/Item.t b/t/db_dependent/Koha/Item.t index 819f897e0e..afc432f92e 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,65 @@ 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.34.1