@@ -, +, @@ --- t/db_dependent/Koha/Cash/Register.t | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) --- a/t/db_dependent/Koha/Cash/Register.t +++ a/t/db_dependent/Koha/Cash/Register.t @@ -203,31 +203,24 @@ subtest 'cashup' => sub { subtest 'outstanding_accountlines' => sub { plan tests => 4; - # add_cashup should not happen simultaneously with any other action - # that results in an accountline attached to the same cash register. - # In testing, we need to sleep for a second after each action that - # adds to the database. (We cannot use Time::Fake as timestamps are - # being added at the DB level, not in perl. my $accountline1 = $builder->build_object( { class => 'Koha::Account::Lines', - value => { register_id => $register->id }, + value => { register_id => $register->id, timestamp => \'NOW() - INTERVAL 5 MINUTE' }, } ); my $accountline2 = $builder->build_object( { class => 'Koha::Account::Lines', - value => { register_id => $register->id }, + value => { register_id => $register->id, timestamp => \'NOW() - INTERVAL 5 MINUTE'}, } ); - sleep 1; my $accountlines = $register->outstanding_accountlines; is( $accountlines->count, 2, 'No cashup, all accountlines returned' ); my $cashup3 = $register->add_cashup( { manager_id => $patron->id, amount => '2.50' } ); - sleep 1; $accountlines = $register->outstanding_accountlines; is( $accountlines->count, 0, 'Cashup added, no accountlines returned' ); @@ -238,7 +231,10 @@ subtest 'cashup' => sub { value => { register_id => $register->id }, } ); - sleep 1; + + # Fake the cashup timestamp to make sure it's before the accountline we just added, + # we can't trust that these two actions are more than a second apart in a test + $cashup3->timestamp(\'NOW() - INTERVAL 2 MINUTE')->store; $accountlines = $register->outstanding_accountlines; is( $accountlines->count, 1, --