Bug 22254: Correction to datehandling in test
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Fri, 1 Feb 2019 09:55:54 +0000 (09:55 +0000)
committerFridolin Somers <fridolin.somers@biblibre.com>
Mon, 25 Feb 2019 10:17:29 +0000 (11:17 +0100)
Adding 13 months is not always the same as adding 1 month and then
adding 12 months in DateTime maths.  This patch rectified the test
to match the correct behaviour in koha.

Test plan.

1) Modify the test (around line 268) to test against the suspect
   leap date of 2019-01-31 and watch the test fail.
2) Apply the patch (which also adds this modification to test
   for such a leap date) and watch the test now pass.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit 1da0ba48b6fdf38cfd3d3ea63ec076b15995610f)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit 413f34ba244af3560861785f5aa74ab457f00b02)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 60f8ca789f713c3a5c7e3478bac7132165b9092d)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

t/db_dependent/Koha/Patrons.t

index 33ecbab..0ed6ea7 100644 (file)
@@ -286,16 +286,16 @@ subtest 'is_going_to_expire' => sub {
 
 
 subtest 'renew_account' => sub {
-    plan tests => 36;
+    plan tests => 48;
 
-    for my $date ( '2016-03-31', '2016-11-30', dt_from_string() ) {
+    for my $date ( '2016-03-31', '2016-11-30', '2019-01-31', dt_from_string() ) {
         my $dt = dt_from_string( $date, 'iso' );
         Time::Fake->offset( $dt->epoch );
         my $a_month_ago                = $dt->clone->subtract( months => 1, end_of_month => 'limit' )->truncate( to => 'day' );
         my $a_year_later               = $dt->clone->add( months => 12, end_of_month => 'limit' )->truncate( to => 'day' );
-        my $a_year_later_minus_a_month = $dt->clone->add( months => 11, end_of_month => 'limit' )->truncate( to => 'day' );
+        my $a_year_later_minus_a_month = $a_month_ago->clone->add( months => 12, end_of_month => 'limit' )->truncate( to => 'day' );
         my $a_month_later              = $dt->clone->add( months => 1 , end_of_month => 'limit' )->truncate( to => 'day' );
-        my $a_year_later_plus_a_month  = $dt->clone->add( months => 13, end_of_month => 'limit' )->truncate( to => 'day' );
+        my $a_year_later_plus_a_month  = $a_month_later->clone->add( months => 12, end_of_month => 'limit' )->truncate( to => 'day' );
         my $patron_category = $builder->build(
             {   source => 'Category',
                 value  => {