add tests for non glob dirs audit
This commit is contained in:
parent
77105b809a
commit
a73c29fef2
@ -255,11 +255,14 @@ module RuboCop
|
||||
problem "\"#{m.source}\" is deprecated, use a comparison to MacOS.version instead"
|
||||
end
|
||||
end
|
||||
#
|
||||
# dirPattern(body_node) do |m|
|
||||
# next unless m =~ /\[("[^\*{},]+")\]/
|
||||
# problem "Dir(#{Regexp.last_match(1)}) is unnecessary; just use #{Regexp.last_match(1)}"
|
||||
# end
|
||||
|
||||
find_instance_method_call(body_node, "Dir", :[]) do |m|
|
||||
path = parameters(m).first
|
||||
next if !path.str_type?
|
||||
next unless match = regex_match_group(path, /^[^\*{},]+$/)
|
||||
problem "Dir([\"#{string_content(path)}\"]) is unnecessary; just use \"#{match[0]}\""
|
||||
end
|
||||
|
||||
#
|
||||
# fileUtils_methods= FileUtils.singleton_methods(false).map { |m| Regexp.escape(m) }.join "|"
|
||||
# find_method_with_args(body_node, :system, /fileUtils_methods/) do |m|
|
||||
|
||||
@ -552,6 +552,29 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do
|
||||
expect_offense(expected, actual)
|
||||
end
|
||||
end
|
||||
|
||||
it "with non glob DIR" do
|
||||
source = <<-EOS.undent
|
||||
class Foo < Formula
|
||||
desc "foo"
|
||||
url 'http://example.com/foo-1.0.tgz'
|
||||
rm_rf Dir["src/{llvm,test,librustdoc,etc/snapshot.pyc}"]
|
||||
rm_rf Dir["src/snapshot.pyc"]
|
||||
end
|
||||
EOS
|
||||
|
||||
expected_offenses = [{ message: "Dir([\"src/snapshot.pyc\"]) is unnecessary; just use \"src/snapshot.pyc\"",
|
||||
severity: :convention,
|
||||
line: 5,
|
||||
column: 13,
|
||||
source: source }]
|
||||
|
||||
inspect_source(cop, source)
|
||||
|
||||
expected_offenses.zip(cop.offenses).each do |expected, actual|
|
||||
expect_offense(expected, actual)
|
||||
end
|
||||
end
|
||||
end
|
||||
def expect_offense(expected, actual)
|
||||
expect(actual.message).to eq(expected[:message])
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user