Skip to content

Commit 65a5631

Browse files
committed
Add PollingAndLoggingTestHelper and refactor tests
1 parent bd6b377 commit 65a5631

File tree

4 files changed

+40
-31
lines changed

4 files changed

+40
-31
lines changed

test/test_helper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class ExpectedTestError < RuntimeError; end
2828

2929

3030
class ActiveSupport::TestCase
31-
include ConfigurationTestHelper, ProcessesTestHelper, JobsTestHelper
31+
include ConfigurationTestHelper, ProcessesTestHelper, JobsTestHelper, PollingAndLoggingTestHelper
3232

3333
setup do
3434
@_on_thread_error = SolidQueue.on_thread_error
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# frozen_string_literal: true
2+
3+
module PollingAndLoggingTestHelper
4+
private
5+
6+
def with_polling(silence:)
7+
old_silence_polling, SolidQueue.silence_polling = SolidQueue.silence_polling, silence
8+
yield
9+
ensure
10+
SolidQueue.silence_polling = old_silence_polling
11+
end
12+
13+
def with_active_record_logger(logger)
14+
old_ar_logger, ActiveRecord::Base.logger = ActiveRecord::Base.logger, logger
15+
16+
if rails_8_1_or_newer?
17+
if logger
18+
subscription = ActiveSupport::Notifications.subscribe("sql.active_record") do |*args|
19+
payload = args.last
20+
sql = payload[:sql]
21+
logger.debug(sql) if sql
22+
end
23+
end
24+
end
25+
26+
yield
27+
ensure
28+
if rails_8_1_or_newer?
29+
if defined?(subscription) && subscription
30+
ActiveSupport::Notifications.unsubscribe(subscription)
31+
end
32+
end
33+
ActiveRecord::Base.logger = old_ar_logger
34+
end
35+
36+
def rails_8_1_or_newer?
37+
Gem::Version.new(Rails.version) >= Gem::Version.new("8.1.0")
38+
end
39+
end

test/unit/dispatcher_test.rb

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -118,19 +118,4 @@ class DispatcherTest < ActiveSupport::TestCase
118118
dispatcher.start
119119
wait_while_with_timeout(1.second) { !SolidQueue::ScheduledExecution.exists? }
120120
end
121-
122-
private
123-
def with_polling(silence:)
124-
old_silence_polling, SolidQueue.silence_polling = SolidQueue.silence_polling, silence
125-
yield
126-
ensure
127-
SolidQueue.silence_polling = old_silence_polling
128-
end
129-
130-
def with_active_record_logger(logger)
131-
old_logger, ActiveRecord::Base.logger = ActiveRecord::Base.logger, logger
132-
yield
133-
ensure
134-
ActiveRecord::Base.logger = old_logger
135-
end
136121
end

test/unit/worker_test.rb

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -192,19 +192,4 @@ class WorkerTest < ActiveSupport::TestCase
192192
@worker.start
193193
sleep 1.second
194194
end
195-
196-
private
197-
def with_polling(silence:)
198-
old_silence_polling, SolidQueue.silence_polling = SolidQueue.silence_polling, silence
199-
yield
200-
ensure
201-
SolidQueue.silence_polling = old_silence_polling
202-
end
203-
204-
def with_active_record_logger(logger)
205-
old_logger, ActiveRecord::Base.logger = ActiveRecord::Base.logger, logger
206-
yield
207-
ensure
208-
ActiveRecord::Base.logger = old_logger
209-
end
210195
end

0 commit comments

Comments
 (0)