Commit b0f2861c authored by Gabriel Mazetto's avatar Gabriel Mazetto

Make the SimpleExecutor rescue exceptions in the executing Checks

parent 6b86ce75
...@@ -75,6 +75,8 @@ module SystemCheck ...@@ -75,6 +75,8 @@ module SystemCheck
check.show_error check.show_error
end end
rescue StandardError => e
$stdout.puts "Exception: #{e.message}".color(:red)
end end
private private
......
...@@ -75,6 +75,15 @@ describe SystemCheck::SimpleExecutor, lib: true do ...@@ -75,6 +75,15 @@ describe SystemCheck::SimpleExecutor, lib: true do
end end
end end
class BugousCheck < SystemCheck::BaseCheck
CustomError = Class.new(StandardError)
set_name 'my bugous check'
def check?
raise CustomError, 'omg'
end
end
describe '#component' do describe '#component' do
it 'returns stored component name' do it 'returns stored component name' do
expect(subject.component).to eq('Test') expect(subject.component).to eq('Test')
...@@ -138,14 +147,14 @@ describe SystemCheck::SimpleExecutor, lib: true do ...@@ -138,14 +147,14 @@ describe SystemCheck::SimpleExecutor, lib: true do
context 'when check pass' do context 'when check pass' do
it 'prints yes' do it 'prints yes' do
expect_any_instance_of(SimpleCheck).to receive(:check?).and_call_original expect_any_instance_of(SimpleCheck).to receive(:check?).and_call_original
expect { subject.run_check(SimpleCheck) }.to output(/ \.\.\. yes/).to_stdout expect { subject.run_check(SimpleCheck) }.to output(/ \.\.\. \e\[32myes/).to_stdout
end end
end end
context 'when check fails' do context 'when check fails' do
it 'prints no' do it 'prints no' do
expect_any_instance_of(OtherCheck).to receive(:check?).and_call_original expect_any_instance_of(OtherCheck).to receive(:check?).and_call_original
expect { subject.run_check(OtherCheck) }.to output(/ \.\.\. no/).to_stdout expect { subject.run_check(OtherCheck) }.to output(/ \.\.\. \e\[31mno/).to_stdout
end end
it 'displays error message from #show_error' do it 'displays error message from #show_error' do
...@@ -219,5 +228,11 @@ describe SystemCheck::SimpleExecutor, lib: true do ...@@ -219,5 +228,11 @@ describe SystemCheck::SimpleExecutor, lib: true do
end end
end end
end end
context 'when there is an exception' do
it 'rescues the exception' do
expect{ subject.run_check(BugousCheck) }.not_to raise_exception
end
end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment