Skip to content

Commit 590e312

Browse files
committed
Add LoggingTestHelper and refactor tests to use it
Introduced LoggingTestHelper to encapsulate logging-related test utilities. Updated ActiveSupport::TestCase to include the new helper and removed redundant logging methods from DispatcherTest and WorkerTest, improving code organization and maintainability.
1 parent bd6b377 commit 590e312

File tree

4 files changed

+38
-31
lines changed

4 files changed

+38
-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, LoggingTestHelper
3232

3333
setup do
3434
@_on_thread_error = SolidQueue.on_thread_error
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# frozen_string_literal: true
2+
3+
module LoggingTestHelper
4+
private
5+
def rails_uses_structured_event_logging?
6+
defined?(ActiveSupport::EventReporter) &&
7+
defined?(ActiveRecord::LogSubscriber) &&
8+
defined?(ActiveSupport::EventReporter::LogSubscriber) &&
9+
ActiveRecord::LogSubscriber < ActiveSupport::EventReporter::LogSubscriber
10+
end
11+
12+
def with_polling(silence:)
13+
old_silence_polling, SolidQueue.silence_polling = SolidQueue.silence_polling, silence
14+
yield
15+
ensure
16+
SolidQueue.silence_polling = old_silence_polling
17+
end
18+
19+
def with_active_record_logger(logger)
20+
old_ar_logger, ActiveRecord::Base.logger = ActiveRecord::Base.logger, logger
21+
structured = rails_uses_structured_event_logging?
22+
23+
if structured
24+
old_as_ls_logger, ActiveSupport::LogSubscriber.logger = ActiveSupport::LogSubscriber.logger, logger
25+
old_debug_mode = ActiveSupport.event_reporter.debug_mode?
26+
ActiveSupport.event_reporter.debug_mode = true
27+
end
28+
yield
29+
ensure
30+
ActiveRecord::Base.logger = old_ar_logger
31+
32+
if structured
33+
ActiveSupport::LogSubscriber.logger = old_as_ls_logger
34+
ActiveSupport.event_reporter.debug_mode = old_debug_mode
35+
end
36+
end
37+
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)