brew/Library/Homebrew/test/rubocops/compact_blank_spec.rb
Douglas Eichelberger 665bda0fbd Vendor Presence cop
2024-01-26 15:03:59 -08:00

115 lines
3.1 KiB
Ruby

# frozen_string_literal: true
require "rubocops/compact_blank"
RSpec.describe RuboCop::Cop::Homebrew::CompactBlank, :config do
it "registers and corrects an offense when using `reject { |e| e.blank? }`" do
expect_offense(<<~RUBY)
collection.reject { |e| e.blank? }
^^^^^^^^^^^^^^^^^^^^^^^ Use `compact_blank` instead.
RUBY
expect_correction(<<~RUBY)
collection.compact_blank
RUBY
end
it "registers and corrects an offense when using `reject(&:blank?)`" do
expect_offense(<<~RUBY)
collection.reject(&:blank?)
^^^^^^^^^^^^^^^^ Use `compact_blank` instead.
RUBY
expect_correction(<<~RUBY)
collection.compact_blank
RUBY
end
it "registers and corrects an offense when using `delete_if { |e| e.blank? }`" do
expect_offense(<<~RUBY)
collection.delete_if { |e| e.blank? }
^^^^^^^^^^^^^^^^^^^^^^^^^^ Use `compact_blank!` instead.
RUBY
expect_correction(<<~RUBY)
collection.compact_blank!
RUBY
end
it "registers and corrects an offense when using `delete_if(&:blank?)`" do
expect_offense(<<~RUBY)
collection.delete_if(&:blank?)
^^^^^^^^^^^^^^^^^^^ Use `compact_blank!` instead.
RUBY
expect_correction(<<~RUBY)
collection.compact_blank!
RUBY
end
it "registers and corrects an offense when using `reject! { |e| e.blank? }`" do
expect_offense(<<~RUBY)
collection.reject! { |e| e.blank? }
^^^^^^^^^^^^^^^^^^^^^^^^ Use `compact_blank!` instead.
RUBY
expect_correction(<<~RUBY)
collection.compact_blank!
RUBY
end
it "registers and corrects an offense when using `reject!(&:blank?)`" do
expect_offense(<<~RUBY)
collection.reject!(&:blank?)
^^^^^^^^^^^^^^^^^ Use `compact_blank!` instead.
RUBY
expect_correction(<<~RUBY)
collection.compact_blank!
RUBY
end
it "registers and corrects an offense when using `reject(&:blank?)` in block" do
expect_offense(<<~RUBY)
hash.transform_values { |value| value.reject(&:blank?) }
^^^^^^^^^^^^^^^^ Use `compact_blank` instead.
RUBY
expect_correction(<<~RUBY)
hash.transform_values { |value| value.compact_blank }
RUBY
end
it "does not register an offense when using `compact_blank`" do
expect_no_offenses(<<~RUBY)
collection.compact_blank
RUBY
end
it "does not register an offense when using `compact_blank!`" do
expect_no_offenses(<<~RUBY)
collection.compact_blank!
RUBY
end
it "does not register an offense when using `reject { |k, v| k.blank? }`" do
expect_no_offenses(<<~RUBY)
collection.reject { |k, v| k.blank? }
RUBY
end
it "does not register an offense when using the receiver of `blank?` is not a block variable" do
expect_no_offenses(<<~RUBY)
def foo(arg)
collection.reject { |_| arg.blank? }
end
RUBY
end
it "does not register an offense when using `reject { |e| e.empty? }`" do
expect_no_offenses(<<~RUBY)
collection.reject { |e| e.empty? }
RUBY
end
end