brew/Library/Homebrew/test/rubocops/class_cop_spec.rb
2017-10-24 19:39:40 +02:00

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