test/unit/cleaner_test.rb in foreman-tasks-0.15.1 vs test/unit/cleaner_test.rb in foreman-tasks-0.15.2
- old
+ new
@@ -66,9 +66,24 @@
cleaner.delete
ForemanTasks::Task.where(id: tasks_to_delete).must_be_empty
ForemanTasks::Task.where(id: tasks_to_keep).must_equal tasks_to_keep
end
+ it 'matches tasks with compound filters properly' do
+ cleaner = ForemanTasks::Cleaner.new(:filter => 'result = pending or result = error',
+ :states => %w[paused planning])
+ tasks_to_delete = [FactoryBot.create(:some_task),
+ FactoryBot.create(:some_task)]
+ tasks_to_delete[0].update!(:result => 'error', :state => 'paused')
+ tasks_to_delete[1].update!(:result => 'pending', :state => 'planning')
+ task_to_keep = FactoryBot.create(:some_task)
+ task_to_keep.update!(:result => 'pending', :state => 'planned')
+ cleaner.expects(:tasks_to_csv)
+ cleaner.delete
+ ForemanTasks::Task.where(id: tasks_to_delete).must_be_empty
+ ForemanTasks::Task.where(id: task_to_keep).must_equal [task_to_keep]
+ end
+
it 'backs tasks up before deleting' do
dir = '/tmp'
cleaner = ForemanTasks::Cleaner.new(:filter => '', :after => '10d', :backup_dir => dir)
tasks_to_delete = [FactoryBot.create(:dynflow_task, :user_create_task),
FactoryBot.create(:dynflow_task, :product_create_task)]