Skip to content
This repository has been archived by the owner on Jun 19, 2020. It is now read-only.

Commit

Permalink
(FACT-2559) refactored file_helper.rb and file_helper_spec.rb
Browse files Browse the repository at this point in the history
Added in logger_spec.rb removal of multi_logger_double
  • Loading branch information
Andrei Filipovici committed Apr 22, 2020
1 parent b978831 commit ca5adaf
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 13 deletions.
17 changes: 12 additions & 5 deletions lib/util/file_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,28 @@ module Facter
module Util
class FileHelper
@log = Log.new(self)

class << self
DEBUG_MESSAGE = 'File at: %s is not accessible.'

def safe_read(path, result_if_not_readable = '')
def safe_read(path, default_return = '')
return File.read(path) if File.readable?(path)

@log.debug(DEBUG_MESSAGE % path)
result_if_not_readable
log_failed_to_read(path)
default_return
end

def safe_readlines(path, result_if_not_readable = [])
def safe_readlines(path, default_return = [])
return File.readlines(path) if File.readable?(path)

log_failed_to_read(path)
default_return
end

private

def log_failed_to_read(path)
@log.debug(DEBUG_MESSAGE % path)
result_if_not_readable
end
end
end
Expand Down
21 changes: 13 additions & 8 deletions spec/facter/util/file_helper_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,19 @@
describe Facter::Util::FileHelper do
subject(:file_helper) { Facter::Util::FileHelper }

let(:logger) { instance_spy(Facter::Log) }
let(:path) { '/Users/admin/file.txt' }
let(:content) { 'file content' }
let(:error_message) { 'File at: /Users/admin/file.txt is not accessible.' }
let(:error_message) { 'Facter::Util::FileHelper - File at: /Users/admin/file.txt is not accessible.' }
let(:array_content) { ['line 1', 'line 2', 'line 3'] }
let(:multi_logger_double) { instance_spy(Facter::MultiLogger, level: :warn) }

before do
file_helper.instance_variable_set(:@log, logger)
allow(logger).to receive(:debug).with(error_message)
Facter::Log.class_variable_set(:@@logger, multi_logger_double)
allow(Facter).to receive(:debugging?).and_return(true)
end

after do
Facter::Log.class_variable_set(:@@logger, Facter::MultiLogger.new([]))
end

shared_context 'when file is readable' do
Expand Down Expand Up @@ -53,7 +57,7 @@
it "doesn't log anything" do
file_helper.safe_read(path)

expect(logger).not_to have_received(:debug)
expect(multi_logger_double).not_to have_received(:debug)
end
end

Expand Down Expand Up @@ -83,7 +87,8 @@
it 'logs a debug message' do
file_helper.safe_read(path)

expect(logger).to have_received(:debug).with(error_message)
expect(multi_logger_double).to have_received(:debug)
.with(error_message)
end
end
end
Expand Down Expand Up @@ -115,7 +120,7 @@
it "doesn't log anything" do
file_helper.safe_readlines(path)

expect(logger).not_to have_received(:debug)
expect(multi_logger_double).not_to have_received(:debug)
end
end

Expand Down Expand Up @@ -145,7 +150,7 @@
it 'logs a debug message' do
file_helper.safe_read(path)

expect(logger).to have_received(:debug).with(error_message)
expect(multi_logger_double).to have_received(:debug).with(error_message)
end
end
end
Expand Down
4 changes: 4 additions & 0 deletions spec/framework/logging/logger_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
Facter::Log.class_variable_set(:@@logger, multi_logger_double)
end

after do
Facter::Log.class_variable_set(:@@logger, Facter::MultiLogger.new([]))
end

describe '#debug' do
before do
allow(Facter).to receive(:debugging?).and_return(true)
Expand Down

0 comments on commit ca5adaf

Please sign in to comment.