From 8d55c87adbe9b080310b02c52ab226c4641dfd9a Mon Sep 17 00:00:00 2001 From: Michka Popoff Date: Tue, 30 Jun 2020 08:36:11 +0100 Subject: [PATCH] components order: fix audit and add test --- Library/Homebrew/rubocops/components_order.rb | 5 ++- .../test/rubocops/components_order_spec.rb | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/rubocops/components_order.rb b/Library/Homebrew/rubocops/components_order.rb index 04eaaea646..45153d7c92 100644 --- a/Library/Homebrew/rubocops/components_order.rb +++ b/Library/Homebrew/rubocops/components_order.rb @@ -226,11 +226,10 @@ module RuboCop next if succeeding_component.empty? offensive_nodes = check_precedence(preceding_component, succeeding_component) - break if offensive_nodes + return [present_components, offensive_nodes] if offensive_nodes end end - - [present_components, offensive_nodes] + nil end # Method to format message for reporting component precedence violations diff --git a/Library/Homebrew/test/rubocops/components_order_spec.rb b/Library/Homebrew/test/rubocops/components_order_spec.rb index a48b56601a..31f6cd5938 100644 --- a/Library/Homebrew/test/rubocops/components_order_spec.rb +++ b/Library/Homebrew/test/rubocops/components_order_spec.rb @@ -77,6 +77,37 @@ describe RuboCop::Cop::FormulaAudit::ComponentsOrder do RUBY end + it "When `install` precedes `depends_on`" do + expect_offense(<<~RUBY) + class Foo < Formula + url "https://brew.sh/foo-1.0.tgz" + + def install + end + + depends_on "openssl" + ^^^^^^^^^^^^^^^^^^^^ `depends_on` (line 7) should be put before `install` (line 4) + end + RUBY + end + + it "When `test` precedes `depends_on`" do + expect_offense(<<~RUBY) + class Foo < Formula + url "https://brew.sh/foo-1.0.tgz" + + def install + end + + def test + end + + depends_on "openssl" + ^^^^^^^^^^^^^^^^^^^^ `depends_on` (line 10) should be put before `install` (line 4) + end + RUBY + end + it "When only one of many `depends_on` precedes `conflicts_with`" do expect_offense(<<~RUBY) class Foo < Formula