Sus::Fixtures::ConsoleGuidesGetting Started

Getting Started

This guide explains how to use the Sus::Fixtures::Console gem to redirect console logging output during tests.

Installation

Add the gem to your project:

$ bundle add sus-fixtures-console

Usage

Capturing Console Output

Here is a basic example of a test, that captures the log output:

require 'sus/fixtures/console/captured_logger'

describe Sus::Fixtures::Console::CapturedLogger do
	include_context Sus::Fixtures::Console::CapturedLogger
	
	it "should capture output" do
		Console.logger.debug("Hello, World!")
		
		expect(capture.last).to have_keys(
			severity: be == :debug,
			subject: be == "Hello, World!"
		)
	end
end

Ignoring Console Output

If you want to ignore the console output, you can use the Sus::Fixtures::Console::NullLogger fixture:

describe Sus::Fixtures::Console::NullLogger do
	include_context Sus::Fixtures::Console::NullLogger
	
	it "should capture output" do
		expect($stderr).not.to receive(:puts)
		expect($stderr).not.to receive(:write)
		
		Console.debug("Hello, World!")
	end
end

Setting a Default Log Level

In many cases, you may wish to set a default log level that only prints warnings or above:

# In your `sus/config.rb` file:
require 'console'
Console.logger.warn!