module Covered::Sus

def after_tests(assertions)

@parameter assertions [Object] The assertions object passed through to Sus.
Finish coverage tracking after tests complete.
def after_tests(assertions)
	super(assertions)
	
	if @covered&.record?
		@covered.finish
		@covered.call(self.output.io)
	end
end

def covered

@returns [Covered::Config | Nil] The active coverage configuration when coverage is enabled.
The active coverage configuration.
def covered
	@covered
end

def initialize(...)

Loads and starts coverage only when the `COVERAGE` environment variable is set.
Initialize Sus with optional coverage tracking.
def initialize(...)
	super
	
	# Defer loading the coverage configuration unless we are actually running with coverage started to avoid performance cost/overhead:
	if ENV["COVERAGE"]
		require_relative "config"
		
		@covered = Covered::Config.load(root: self.root)
		if @covered.record?
			@covered.start
		end
	else
		@covered = nil
	end
end