From 4ed34f91c26b3b3449d676fa2067222d318c4d3a Mon Sep 17 00:00:00 2001 From: Gautham Goli Date: Wed, 24 May 2017 13:04:55 +0530 Subject: audit: Port audit_conflicts method to rubocop and add tests --- .../Homebrew/test/rubocops/conflicts_cop_spec.rb | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Library/Homebrew/test/rubocops/conflicts_cop_spec.rb (limited to 'Library/Homebrew/test') diff --git a/Library/Homebrew/test/rubocops/conflicts_cop_spec.rb b/Library/Homebrew/test/rubocops/conflicts_cop_spec.rb new file mode 100644 index 000000000..c3175509a --- /dev/null +++ b/Library/Homebrew/test/rubocops/conflicts_cop_spec.rb @@ -0,0 +1,47 @@ +require "rubocop" +require "rubocop/rspec/support" +require_relative "../../extend/string" +require_relative "../../rubocops/conflicts_cop" + +describe RuboCop::Cop::FormulaAudit::Conflicts do + subject(:cop) { described_class.new } + + context "When auditing formula for conflicts with" do + it "multiple conflicts_with" do + source = <<-EOS.undent + class FooAT20 < Formula + url 'http://example.com/foo-2.0.tgz' + conflicts_with "mysql", "mariadb", "percona-server", + :because => "both install plugins" + end + EOS + + msg = <<-EOS.undent + Versioned formulae should not use `conflicts_with`. + Use `keg_only :versioned_formula` instead. + EOS + expected_offenses = [{ message: msg, + severity: :convention, + line: 3, + column: 2, + source: source }] + + inspect_source(cop, source) + + expected_offenses.zip(cop.offenses).each do |expected, actual| + expect_offense(expected, actual) + end + end + + it "no conflicts_with" do + source = <<-EOS.undent + class FooAT20 < Formula + url 'http://example.com/foo-2.0.tgz' + desc 'Bar' + end + EOS + inspect_source(cop, source) + expect(cop.offenses).to eq([]) + end + end +end -- cgit v1.2.3