diff --git a/features/cli/debug.feature b/features/cli/debug.feature new file mode 100644 index 0000000..19f1497 --- /dev/null +++ b/features/cli/debug.feature @@ -0,0 +1,5 @@ +Feature: debug CLI option + + Scenario: raises the logger level to DEBUG + When I run uhwm with option -d + Then the current output must match /log.+debug.+level/i diff --git a/lib/uh/wm/env.rb b/lib/uh/wm/env.rb index eab4fc3..b750493 100644 --- a/lib/uh/wm/env.rb +++ b/lib/uh/wm/env.rb @@ -3,6 +3,7 @@ module Uh class Env LOGGER_LEVEL = Logger::WARN LOGGER_LEVEL_VERBOSE = Logger::INFO + LOGGER_LEVEL_DEBUG = Logger::DEBUG LOGGER_LEVEL_STRINGS = %w[DEBUG INFO WARN ERROR FATAL UNKNOWN] extend Forwardable @@ -26,7 +27,8 @@ module Uh def logger @logger ||= Logger.new(@output).tap do |o| - o.level = verbose? ? LOGGER_LEVEL_VERBOSE : LOGGER_LEVEL + o.level = debug? ? LOGGER_LEVEL_DEBUG : + verbose? ? LOGGER_LEVEL_VERBOSE : LOGGER_LEVEL end end diff --git a/spec/uh/wm/env_spec.rb b/spec/uh/wm/env_spec.rb index 135f831..4b89b04 100644 --- a/spec/uh/wm/env_spec.rb +++ b/spec/uh/wm/env_spec.rb @@ -61,9 +61,17 @@ module Uh context 'when verbose mode is enabled' do before { env.verbose = true } - it 'has logger level info set' do - expect(env.logger.level).to be Logger::INFO + it 'has logger level info set' do + expect(env.logger.level).to be Logger::INFO + end end + + context 'when debug mode is enabled' do + before { env.debug = true } + + it 'has logger level debug set' do + expect(env.logger.level).to be Logger::DEBUG + end end end