From 06b3ea638f6881b0ef840e5a7f3356506b407c44 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Wed, 29 Apr 2020 18:37:21 -0300 Subject: [PATCH] Bug 25303: (QA follow-up) Fix test construction The test called ->delete on the resultset directly, which is not the same when we already called ->next and the Koha::Hold->delete won't be called as there's no ->next hold. I took the oportunity to wrap the subtest in its own transaction and build its own data to avoid interference between tests... Signed-off-by: Tomas Cohen Arazi --- t/db_dependent/Koha/Biblios.t | 75 ++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 32 deletions(-) diff --git a/t/db_dependent/Koha/Biblios.t b/t/db_dependent/Koha/Biblios.t index a6af46d288..dd26cf72de 100644 --- a/t/db_dependent/Koha/Biblios.t +++ b/t/db_dependent/Koha/Biblios.t @@ -62,38 +62,6 @@ subtest 'store' => sub { ); }; -subtest 'holds + current_holds' => sub { - plan tests => 5; - C4::Reserves::AddReserve( - { - branchcode => $patron->branchcode, - borrowernumber => $patron->borrowernumber, - biblionumber => $biblio->biblionumber, - } - ); - my $holds = $biblio->holds; - is( ref($holds), 'Koha::Holds', '->holds should return a Koha::Holds object' ); - is( $holds->count, 1, '->holds should only return 1 hold' ); - is( $holds->next->borrowernumber, $patron->borrowernumber, '->holds should return the correct hold' ); - $holds->delete; - - # Add a hold in the future - C4::Reserves::AddReserve( - { - branchcode => $patron->branchcode, - borrowernumber => $patron->borrowernumber, - biblionumber => $biblio->biblionumber, - reservation_date => dt_from_string->add( days => 2 ), - } - ); - $holds = $biblio->holds; - is( $holds->count, 1, '->holds should return future holds' ); - $holds = $biblio->current_holds; - is( $holds->count, 0, '->current_holds should not return future holds' ); - $holds->delete; - -}; - subtest 'waiting_or_in_transit' => sub { plan tests => 4; my $biblio = $builder->build( { source => 'Biblio' } ); @@ -222,3 +190,46 @@ subtest 'custom_cover_image_url' => sub { }; $schema->storage->txn_rollback; + +subtest 'holds + current_holds' => sub { + plan tests => 5; + + $schema->storage->txn_begin; + + my $patron = $builder->build_object({ class => 'Koha::Patrons' }); + my $biblio = $builder->build_sample_biblio(); + + C4::Reserves::AddReserve( + { + branchcode => $patron->branchcode, + borrowernumber => $patron->borrowernumber, + biblionumber => $biblio->biblionumber, + } + ); + + my $holds = $biblio->holds; + is( ref($holds), 'Koha::Holds', '->holds should return a Koha::Holds object' ); + is( $holds->count, 1, '->holds should only return 1 hold' ); + is( $holds->next->borrowernumber, $patron->borrowernumber, '->holds should return the correct hold' ); + + # Start fresh + $biblio->holds->delete; + + # Add a hold in the future + C4::Reserves::AddReserve( + { + branchcode => $patron->branchcode, + borrowernumber => $patron->borrowernumber, + biblionumber => $biblio->biblionumber, + reservation_date => dt_from_string->add( days => 2 ), + } + ); + $holds = $biblio->holds; + is( $holds->count, 1, '->holds should return future holds' ); + $holds = $biblio->current_holds; + is( $holds->count, 0, '->current_holds should not return future holds' ); + + $schema->storage->txn_rollback; +}; + + -- 2.26.2