Implement CLI debug option

This commit is contained in:
Thibault Jouan
2014-10-12 18:26:48 +00:00
parent 25d03d4322
commit e22d0039e1
8 changed files with 64 additions and 8 deletions

View File

@@ -112,6 +112,15 @@ module Producer::Core
end
end
context 'with debug option' do
let(:options) { %w[-d] }
it 'assigns the given target to the env' do
cli.parse_arguments!
expect(cli.env).to be_debug
end
end
context 'with combined options' do
let(:options) { %w[-vn]}

View File

@@ -26,6 +26,10 @@ module Producer::Core
expect(env.verbose).to be false
end
it 'assigns debug as false' do
expect(env.debug).to be false
end
it 'assigns dry run as false' do
expect(env.dry_run).to be false
end
@@ -168,6 +172,13 @@ module Producer::Core
end
end
describe '#debug?' do
it 'returns true when debug is enabled' do
env.debug = true
expect(env).to be_debug
end
end
describe '#dry_run?' do
it 'returns true when dry run is enabled' do
env.dry_run = true

View File

@@ -23,14 +23,15 @@ module Producer
end
describe '#format' do
let(:message) { 'some exception' }
let(:exception) { Exception.new(message) }
before { exception.set_backtrace %w[back trace] }
def exception
begin fail 'original exception' rescue fail 'some exception' end
rescue
$!.tap { |o| o.set_backtrace %w[back trace] }
end
it 'formats the message' do
expect(formatter.format exception)
.to match /^Exception: some exception$/
.to match /^RuntimeError: some exception$/
end
it 'indents the backtrace' do
@@ -43,6 +44,14 @@ module Producer
it 'excludes producer code from the backtrace' do
expect(formatter.format exception).not_to include 'producer-core'
end
context 'when debug is enabled' do
let(:debug) { true }
it 'does not exclude producer code from the backtrace' do
expect(formatter.format exception).to include 'producer-core'
end
end
end
end
end