mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
63 lines
1.7 KiB
Ruby
63 lines
1.7 KiB
Ruby
require_relative "../../rubocops/class_cop"
|
|
|
|
describe RuboCop::Cop::FormulaAudit::ClassName do
|
|
subject(:cop) { described_class.new }
|
|
|
|
it "reports an offense when using ScriptFileFormula" do
|
|
expect_offense(<<~RUBY)
|
|
class Foo < ScriptFileFormula
|
|
^^^^^^^^^^^^^^^^^ ScriptFileFormula is deprecated, use Formula instead
|
|
url 'http://example.com/foo-1.0.tgz'
|
|
end
|
|
RUBY
|
|
end
|
|
|
|
it "reports an offense when using GithubGistFormula" do
|
|
expect_offense(<<~RUBY)
|
|
class Foo < GithubGistFormula
|
|
^^^^^^^^^^^^^^^^^ GithubGistFormula is deprecated, use Formula instead
|
|
url 'http://example.com/foo-1.0.tgz'
|
|
end
|
|
RUBY
|
|
end
|
|
|
|
it "reports an offense when using AmazonWebServicesFormula" do
|
|
expect_offense(<<~RUBY)
|
|
class Foo < AmazonWebServicesFormula
|
|
^^^^^^^^^^^^^^^^^^^^^^^^ AmazonWebServicesFormula is deprecated, use Formula instead
|
|
url 'http://example.com/foo-1.0.tgz'
|
|
end
|
|
RUBY
|
|
end
|
|
|
|
it "supports auto-correcting deprecated parent classes" do
|
|
source = <<~EOS
|
|
class Foo < AmazonWebServicesFormula
|
|
url 'http://example.com/foo-1.0.tgz'
|
|
end
|
|
EOS
|
|
|
|
corrected_source = <<~EOS
|
|
class Foo < Formula
|
|
url 'http://example.com/foo-1.0.tgz'
|
|
end
|
|
EOS
|
|
|
|
new_source = autocorrect_source(source)
|
|
expect(new_source).to eq(corrected_source)
|
|
end
|
|
end
|
|
|
|
describe RuboCop::Cop::FormulaAuditStrict::Test do
|
|
subject(:cop) { described_class.new }
|
|
|
|
it "reports an offense when there is no test block" do
|
|
expect_offense(<<~RUBY)
|
|
class Foo < Formula
|
|
^^^^^^^^^^^^^^^^^^^ A `test do` test block should be added
|
|
url 'http://example.com/foo-1.0.tgz'
|
|
end
|
|
RUBY
|
|
end
|
|
end
|