mirror of
https://github.com/discourse/discourse.git
synced 2024-12-12 07:53:58 +08:00
78 lines
1.8 KiB
Ruby
78 lines
1.8 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require "rails_helper"
|
||
|
|
||
|
RSpec.describe "Pausing/Unpausing Sidekiq", type: :multisite do
|
||
|
describe "#pause!, #unpause! and #paused?" do
|
||
|
it "can pause and unpause" do
|
||
|
Sidekiq.pause!
|
||
|
expect(Sidekiq.paused?).to eq(true)
|
||
|
|
||
|
test_multisite_connection("second") do
|
||
|
expect(Sidekiq.paused?).to eq(false)
|
||
|
end
|
||
|
|
||
|
Sidekiq.unpause!
|
||
|
|
||
|
expect(Sidekiq.paused?).to eq(false)
|
||
|
|
||
|
test_multisite_connection("second") do
|
||
|
Sidekiq.pause!("test")
|
||
|
expect(Sidekiq.paused?).to eq(true)
|
||
|
end
|
||
|
|
||
|
expect(Sidekiq.paused_dbs).to eq(["second"])
|
||
|
|
||
|
Sidekiq.unpause_all!
|
||
|
|
||
|
RailsMultisite::ConnectionManagement.each_connection do
|
||
|
expect(Sidekiq.paused?).to eq(false)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
RSpec.describe Sidekiq::Pausable, type: :multisite do
|
||
|
after do
|
||
|
Sidekiq.unpause_all!
|
||
|
end
|
||
|
|
||
|
describe "when sidekiq is paused" do
|
||
|
let(:middleware) { Sidekiq::Pausable.new }
|
||
|
|
||
|
def call_middleware(db = RailsMultisite::ConnectionManagement::DEFAULT)
|
||
|
middleware.call(Jobs::PostAlert.new, {
|
||
|
"args" => [{ "current_site_id" => db }]
|
||
|
}, "critical") do
|
||
|
yield
|
||
|
end
|
||
|
end
|
||
|
|
||
|
it "should delay the job" do
|
||
|
Sidekiq.pause!
|
||
|
|
||
|
called = false
|
||
|
called2 = false
|
||
|
call_middleware { called = true }
|
||
|
|
||
|
expect(called).to eq(false)
|
||
|
|
||
|
test_multisite_connection("second") do
|
||
|
call_middleware("second") { called2 = true }
|
||
|
expect(called2).to eq(true)
|
||
|
end
|
||
|
|
||
|
Sidekiq.unpause!
|
||
|
call_middleware { called = true }
|
||
|
|
||
|
expect(called).to eq(true)
|
||
|
|
||
|
test_multisite_connection("second") do
|
||
|
Sidekiq.pause!
|
||
|
call_middleware("second") { called2 = false }
|
||
|
expect(called2).to eq(true)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|