From 76f4eccdceb5b3fb4e88b56e077234a6a3e56b08 Mon Sep 17 00:00:00 2001 From: Gautham Goli Date: Mon, 14 Aug 2017 15:22:44 +0530 Subject: add test for using ARGV to check options --- Library/Homebrew/rubocops/lines_cop.rb | 11 +++++------ Library/Homebrew/test/rubocops/lines_cop_spec.rb | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 6 deletions(-) (limited to 'Library/Homebrew') diff --git a/Library/Homebrew/rubocops/lines_cop.rb b/Library/Homebrew/rubocops/lines_cop.rb index dac523424..6a6f34821 100644 --- a/Library/Homebrew/rubocops/lines_cop.rb +++ b/Library/Homebrew/rubocops/lines_cop.rb @@ -88,11 +88,11 @@ module RuboCop end end - # [:debug?, :verbose?, :value].each do |m| - # find_instance_method_call(body_node, :ARGV, m) do - # problem "Use build instead of ARGV to check options" - # end - # end + [:debug?, :verbose?, :value].each do |m| + find_instance_method_call(body_node, "ARGV", m) do + problem "Use build instead of ARGV to check options" + end + end # # find_instance_method_call(body_node, :man, :+) do |m| # next unless match = regex_match_group(parameters(m).first, %r{man[1-8]}) @@ -320,7 +320,6 @@ module RuboCop next unless match = regex_match_group(arg, %r{\-\-(.*)}) problem "Reference '#{match[1]}' without dashes" end - end def unless_modifier?(node) diff --git a/Library/Homebrew/test/rubocops/lines_cop_spec.rb b/Library/Homebrew/test/rubocops/lines_cop_spec.rb index 288ca8f8f..b5ff3d1f4 100644 --- a/Library/Homebrew/test/rubocops/lines_cop_spec.rb +++ b/Library/Homebrew/test/rubocops/lines_cop_spec.rb @@ -811,6 +811,30 @@ describe RuboCop::Cop::FormulaAudit::Miscellaneous do expect_offense(expected, actual) end end + + it "with using ARGV to check options" do + source = <<-EOS.undent + class Foo < Formula + desc "foo" + url 'http://example.com/foo-1.0.tgz' + def test + verbose = ARGV.verbose? + end + end + EOS + + expected_offenses = [{ message: "Use build instead of ARGV to check options", + severity: :convention, + line: 5, + column: 14, + 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]) -- cgit v1.2.3