Skip to content

Commit 6165c62

Browse files
committed
Add PollingAndLoggingTestHelper and refactor tests
1 parent bd6b377 commit 6165c62

File tree

4 files changed

+36
-31
lines changed

4 files changed

+36
-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: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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 logger && rails_8_1_or_newer?
17+
subscription = ActiveSupport::Notifications.subscribe("sql.active_record") do |*args|
18+
payload = args.last
19+
sql = payload[:sql]
20+
logger.debug(sql) if sql
21+
end
22+
end
23+
24+
yield
25+
ensure
26+
if rails_8_1_or_newer?
27+
ActiveSupport::Notifications.unsubscribe(subscription) if defined?(subscription) && subscription
28+
end
29+
ActiveRecord::Base.logger = old_ar_logger
30+
end
31+
32+
def rails_8_1_or_newer?
33+
Gem::Version.new(Rails.version) >= Gem::Version.new("8.1.0")
34+
end
35+
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)