Bug 21155: Prevent SwitchOnSiteCheckouts.t to fail randomly
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 16 Oct 2018 13:27:37 +0000 (10:27 -0300)
committerNick Clemens <nick@bywatersolutions.com>
Wed, 17 Oct 2018 12:28:13 +0000 (12:28 +0000)
 #   Failed test 'The date_due should have been set depending on the circ
 rules when the on-site checkout has been switched'
 #   at t/db_dependent/Circulation/SwitchOnSiteCheckouts.t line 126.
 #          got: '2018-10-16T23:59:00'
 #     expected: '2018-10-21T23:59:00'

TestBuilder set date to today, so issuingrules.harduedate will be set to
today.
issuingrules.hardduedatecompare will be set to an integer.
If set to 0, $datedue will be reset to the hard due date

The call stack is: AddIssue > CalcDateDue > GetHardDueDate

In GetHardDueDate:
3509         if ( $hardduedatecompare == 0 || $hardduedatecompare == $cmp ) {
3510             $datedue = $hardduedate->clone;
3511         }

To fix this random failure we need to set issuingrules.harduedate to undef.

Test plan:
0. Do not apply this patch
1. Modify the test to set hardduedatecompare to 0 (search 'my $issuingrule = ')
2. Execute the test and confirm the failure
3. Apply this patch
4. Execute the test and confirm the it is no longer failing

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
t/db_dependent/Circulation/SwitchOnSiteCheckouts.t

index 506423d..6268561 100644 (file)
@@ -95,6 +95,8 @@ my $issuingrule = $builder->build({
         maxonsiteissueqty  => 1,
         lengthunit         => 'days',
         issuelength        => 5,
+        hardduedate        => undef,
+        hardduedatecompare => 0,
     },
 });