diff --git a/t/14-grutasks.t b/t/14-grutasks.t index 73358c1e6656..06bd565775ef 100644 --- a/t/14-grutasks.t +++ b/t/14-grutasks.t @@ -23,6 +23,7 @@ use Test::Output qw(combined_like combined_unlike); use OpenQA::Test::Case; use File::Which 'which'; use File::Path (); +use File::Touch (); use Mojo::Util qw(dumper); use Date::Format 'time2str'; use Fcntl ':mode'; @@ -401,6 +402,19 @@ subtest 'limit_results_and_logs gru task cleans up logs' => sub { ok !-e $log_file_for_groupless_job, 'log file for groupless job got cleaned'; }; +subtest 'remove_needle_versions gru task cleans up needle versions' => sub { + # Create a temporary needle file older than the configured expiry time (defaults to 30 minutes) + my $temp_needle_path = '/tmp/needle_dirs/test_repo/branch/needles'; + File::Path->make_path($temp_needle_path); + my @needle_files = ($temp_needle_path . 'needle.png', $temp_needle_path . 'needle.json'); + my $ref = File::Touch->new(atime => time - (30 * 60 + 1)); + $ref->touch(@needle_files); + + # Run cleanup + run_gru_job $t->app, 'remove_needle_versions'; + ok !-e $_ for @needle_files; +}; + subtest 'limit audit events' => sub { my $app = $t->app; my $audit_events = $app->schema->resultset('AuditEvents');