Bug 29476: (follow-up) Fix return, add precision test
authorNick Clemens <nick@bywatersolutions.com>
Mon, 13 Dec 2021 17:27:42 +0000 (17:27 +0000)
committerFridolin Somers <fridolin.somers@biblibre.com>
Fri, 14 Jan 2022 02:37:33 +0000 (16:37 -1000)
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
C4/Circulation.pm
t/db_dependent/Circulation.t

index 28742e2..3850b27 100644 (file)
@@ -3199,7 +3199,7 @@ sub GetSoonestRenewDate {
         return $soonestrenewal if $now < $soonestrenewal;
     } elsif ( $itemissue->auto_renew && $patron->autorenew_checkouts ) {
         # Checkouts with auto-renewing fall back to due date
-        my $soonestrenewal = return dt_from_string( $itemissue->date_due );
+        my $soonestrenewal = dt_from_string( $itemissue->date_due );
         if ( C4::Context->preference('NoRenewalBeforePrecision') eq 'date'
             and $issuing_rule->{lengthunit} eq 'days' )
         {
index 2981430..3b0b09b 100755 (executable)
@@ -4957,7 +4957,7 @@ subtest "SendCirculationAlert" => sub {
 };
 
 subtest "GetSoonestRenewDate tests" => sub {
-    plan tests => 4;
+    plan tests => 5;
     Koha::CirculationRules->set_rule(
         {
             categorycode => undef,
@@ -5007,9 +5007,16 @@ subtest "GetSoonestRenewDate tests" => sub {
         'Checkouts without auto-renewal can be renewed immediately if no norenewalbefore'
     );
 
+    t::lib::Mocks::mock_preference( 'NoRenewalBeforePrecision', 'date' );
     $issue->auto_renew(1)->store;
     is(
         GetSoonestRenewDate( $patron->id, $item->itemnumber ),
+        $datedue->clone->truncate( to => 'day' ),
+        'Checkouts with auto-renewal can be renewed earliest on due date if no renewalbefore'
+    );
+    t::lib::Mocks::mock_preference( 'NoRenewalBeforePrecision', 'exact' );
+    is(
+        GetSoonestRenewDate( $patron->id, $item->itemnumber ),
         $datedue,
         'Checkouts with auto-renewal can be renewed earliest on due date if no renewalbefore'
     );