do not delete running jobs

Andrew Cantino 9 ans auparavant
Parent
Commettre
dc06e3aed0
2 fichiers modifiés avec 4 ajouts et 1 suppressions
  1. 1 1
      app/controllers/jobs_controller.rb
  2. 3 0
      spec/controllers/jobs_controller_spec.rb

+ 1 - 1
app/controllers/jobs_controller.rb

@@ -49,7 +49,7 @@ class JobsController < ApplicationController
49 49
   end
50 50
 
51 51
   def destroy_all
52
-    Delayed::Job.delete_all
52
+    Delayed::Job.where(locked_at: nil).delete_all
53 53
 
54 54
     respond_to do |format|
55 55
       format.html { redirect_to jobs_path, notice: "All jobs removed." }

+ 3 - 0
spec/controllers/jobs_controller_spec.rb

@@ -70,6 +70,7 @@ describe JobsController do
70 70
     before do
71 71
       @failed = Delayed::Job.create(failed_at: Time.now - 1.minute)
72 72
       @running = Delayed::Job.create(locked_at: Time.now, locked_by: 'test')
73
+      @pending = Delayed::Job.create
73 74
       sign_in users(:jane)
74 75
     end
75 76
 
@@ -82,11 +83,13 @@ describe JobsController do
82 83
     before do
83 84
       @failed = Delayed::Job.create(failed_at: Time.now - 1.minute)
84 85
       @running = Delayed::Job.create(locked_at: Time.now, locked_by: 'test')
86
+      @pending = Delayed::Job.create
85 87
       sign_in users(:jane)
86 88
     end
87 89
 
88 90
     it "destroys all jobs" do
89 91
       expect { delete :destroy_all }.to change(Delayed::Job, :count).by(-2)
92
+      expect(Delayed::Job.find(@running.id)).to be
90 93
     end
91 94
   end
92 95
 end