brew/Library/Homebrew/test/rubocops/uses_from_macos_spec.rb

53 lines
1.8 KiB
Ruby

# frozen_string_literal: true
require "rubocops/uses_from_macos"
RSpec.describe RuboCop::Cop::FormulaAudit::UsesFromMacos do
subject(:cop) { described_class.new }
context "when auditing `uses_from_macos` dependencies" do
it "reports an offense when used on non-macOS dependency" do
expect_offense(<<~RUBY)
class Foo < Formula
url "https://brew.sh/foo-1.0.tgz"
homepage "https://brew.sh"
uses_from_macos "postgresql"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FormulaAudit/UsesFromMacos: `uses_from_macos` should only be used for macOS dependencies, not 'postgresql'.
end
RUBY
end
it "reports offenses for multiple non-macOS dependencies and none for valid macOS dependencies" do
expect_offense(<<~RUBY)
class Foo < Formula
url "https://brew.sh/foo-1.0.tgz"
homepage "https://brew.sh"
uses_from_macos "boost"
^^^^^^^^^^^^^^^^^^^^^^^ FormulaAudit/UsesFromMacos: `uses_from_macos` should only be used for macOS dependencies, not 'boost'.
uses_from_macos "bzip2"
uses_from_macos "postgresql"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FormulaAudit/UsesFromMacos: `uses_from_macos` should only be used for macOS dependencies, not 'postgresql'.
uses_from_macos "zlib"
end
RUBY
end
it "reports an offense when used in `depends_on :linux` formula" do
expect_offense(<<~RUBY)
class Foo < Formula
url "https://brew.sh/foo-1.0.tgz"
homepage "https://brew.sh"
depends_on :linux
uses_from_macos "zlib"
^^^^^^^^^^^^^^^^^^^^^^ FormulaAudit/UsesFromMacos: `uses_from_macos` should not be used when Linux is required.
end
RUBY
end
end
include_examples "formulae exist", described_class::ALLOWED_USES_FROM_MACOS_DEPS
end