gitlab-org--gitlab-foss/spec/support/helpers/file_read_helpers.rb

48 lines
1 KiB
Ruby

# frozen_string_literal: true
module FileReadHelpers
def stub_file_read(file, content: nil, error: nil)
allow_original_file_read
expectation = allow(File).to receive(:read).with(file)
if error
expectation.and_raise(error)
elsif content
expectation.and_return(content)
else
expectation
end
end
def expect_file_read(file, content: nil, error: nil)
allow_original_file_read
expectation = expect(File).to receive(:read).with(file)
if error
expectation.and_raise(error)
elsif content
expectation.and_return(content)
else
expectation
end
end
def expect_file_not_to_read(file)
allow_original_file_read
expect(File).not_to receive(:read).with(file)
end
private
def allow_original_file_read
# Don't set this mock twice, otherwise subsequent calls will clobber
# previous mocks
return if @allow_original_file_read
@allow_original_file_read = true
allow(File).to receive(:read).and_call_original
end
end