View | Details | Raw Unified | Return to bug 31969
Collapse All | Expand All

(-)a/t/db_dependent/Koha/BackgroundJobs.t (-2 / +66 lines)
Lines 19-25 Link Here
19
19
20
use Modern::Perl;
20
use Modern::Perl;
21
21
22
use Test::More tests => 14;
22
use Test::More tests => 15;
23
use Test::MockModule;
23
use Test::MockModule;
24
24
25
use List::MoreUtils qw(any);
25
use List::MoreUtils qw(any);
Lines 140-142 subtest 'search_limited' => sub { Link Here
140
140
141
    $schema->storage->txn_rollback;
141
    $schema->storage->txn_rollback;
142
};
142
};
143
- 
143
144
subtest 'purge' => sub {
145
    plan tests => 9;
146
    $schema->storage->txn_begin;
147
148
    my $recent_date = dt_from_string;
149
    my $old_date = dt_from_string->subtract({ days => 3 });
150
    my $job_recent_t1_new      = $builder->build_object( { class => 'Koha::BackgroundJobs', value => { status => 'new', ended_on => $old_date, type => 'type1' } } );
151
    my $job_recent_t2_fin = $builder->build_object( { class => 'Koha::BackgroundJobs', value => { status => 'finished', ended_on => $recent_date, type => 'type2' } } );
152
    my $job_old_t1_fin    = $builder->build_object( { class => 'Koha::BackgroundJobs', value => { status => 'finished', ended_on => $old_date, type => 'type1' } } );
153
    my $job_old_t2_fin  = $builder->build_object( { class => 'Koha::BackgroundJobs', value => { status => 'finished', ended_on => $old_date, type => 'type2' } } );
154
155
    my $params = { job_types => ['type1'] , # Arrayref of jobtypes to be purged
156
                   days      => 1,        # Age in days of jobs to be purged
157
                   confirm   => 0,        # Confirm deletion
158
                };
159
    is( Koha::BackgroundJobs->purge($params), 1, 'Only the old finished type1 job would be purged' );
160
161
    $params->{'job_types'} = ['all'];
162
    is( Koha::BackgroundJobs->purge($params), 2, 'All finished old jobs would be purged with job_types = all' );
163
164
    my $rs = Koha::BackgroundJobs->search(
165
        {
166
            id => [ $job_recent_t1_new->id, $job_recent_t2_fin->id, $job_old_t1_fin->id, $job_old_t2_fin->id ]
167
        }
168
    );
169
    is( $rs->count, 4, 'All jobs still left in queue');
170
171
    $params->{'job_types'} = ['type1'];
172
    $params->{'confirm'} = 1;
173
    is( Koha::BackgroundJobs->purge($params), 1, 'Only the old finished type1 job is purged' );
174
175
    $rs = Koha::BackgroundJobs->search(
176
        {
177
            id => [ $job_recent_t1_new->id, $job_recent_t2_fin->id, $job_old_t1_fin->id, $job_old_t2_fin->id ]
178
        }
179
    );
180
    is( $rs->count, 3, '3 jobs still left in queue');
181
182
    $params->{'job_types'} = ['all'];
183
    is( Koha::BackgroundJobs->purge($params), 1, 'The remaining old finished jobs is purged' );
184
        $rs = Koha::BackgroundJobs->search(
185
        {
186
            id => [ $job_recent_t1_new->id, $job_recent_t2_fin->id, $job_old_t1_fin->id, $job_old_t2_fin->id ]
187
        }
188
    );
189
    is( $rs->count, 2, '2 jobs still left in queue');
190
191
    $rs = Koha::BackgroundJobs->search(
192
        {
193
            id => [ $job_recent_t1_new->id ]
194
        }
195
    );
196
    is( $rs->count, 1, 'Unfinished job still left in queue');
197
198
    $rs = Koha::BackgroundJobs->search(
199
        {
200
            id => [ $job_recent_t2_fin->id ]
201
        }
202
    );
203
    is( $rs->count, 1, 'Recent finished job still left in queue');
204
205
    $schema->storage->txn_rollback;
206
207
};

Return to bug 31969