مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-12-01 05:43:04 +00:00
feat: automatically remove queued messages with stale locks (#2872)
هذا الالتزام موجود في:
30
spec/scheduled_tasks/tidy_queued_messages_task_spec.rb
Normal file
30
spec/scheduled_tasks/tidy_queued_messages_task_spec.rb
Normal file
@@ -0,0 +1,30 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rails_helper"
|
||||
|
||||
RSpec.describe TidyQueuedMessagesTask do
|
||||
let(:logger) { TestLogger.new }
|
||||
|
||||
subject(:task) { described_class.new(logger: logger) }
|
||||
|
||||
describe "#call" do
|
||||
it "destroys queued messages with stale locks" do
|
||||
stale_message = create(:queued_message, locked_at: 2.days.ago, locked_by: "test")
|
||||
task.call
|
||||
expect { stale_message.reload }.to raise_error(ActiveRecord::RecordNotFound)
|
||||
expect(logger).to have_logged(/removing queued message \d+/)
|
||||
end
|
||||
|
||||
it "does not destroy messages which are not locked" do
|
||||
message = create(:queued_message)
|
||||
task.call
|
||||
expect { message.reload }.not_to raise_error
|
||||
end
|
||||
|
||||
it "does not destroy messages which where were locked less then the number of stale days" do
|
||||
message = create(:queued_message, locked_at: 10.minutes.ago, locked_by: "test")
|
||||
task.call
|
||||
expect { message.reload }.not_to raise_error
|
||||
end
|
||||
end
|
||||
end
|
||||
المرجع في مشكلة جديدة
حظر مستخدم