module CapturedLogger
Shared context for capturing console output during tests. Provides access to captured log messages and helper methods for testing console logging.
Definitions
def console_capture
Signature
-
returns
Console::Capture
Captures console output for inspection.
Implementation
def console_capture
@console_capture ||= ::Console::Capture.new
end
def console_logger
Signature
-
returns
Console::Logger
Logger configured to capture output at DEBUG level.
Implementation
def console_logger
@console_logger ||= ::Console::Logger.new(console_capture, level: ::Console::Logger::DEBUG)
end
def around
Set up console logger before test execution and clean up afterwards.
Implementation
def around
::Console.logger = console_logger
super
ensure
::Console.logger = nil
end
def expect_console
Create an expectation for the console capture.
Signature
-
returns
Object
An expectation object for the console capture.
Implementation
def expect_console
expect(console_capture)
end
def have_logged(**fields)
Create a matcher for checking logged messages with specific fields.
Signature
-
parameter
fields
Hash
Key-value pairs to match in logged messages.
-
returns
Object
A matcher that checks for logged messages containing the specified fields.
Implementation
def have_logged(**fields)
have_value(have_keys(**fields))
end