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

115 lines
3.1 KiB
Ruby
Raw Normal View History

2024-01-26 13:24:32 -08:00
# frozen_string_literal: true
require "rubocops/compact_blank"
2024-01-26 13:32:29 -08:00
RSpec.describe RuboCop::Cop::Homebrew::CompactBlank, :config do
2024-01-26 13:24:32 -08:00
it "registers and corrects an offense when using `reject { |e| e.blank? }`" do
expect_offense(<<~RUBY)
collection.reject { |e| e.blank? }
2024-01-26 13:32:29 -08:00
^^^^^^^^^^^^^^^^^^^^^^^ Use `compact_blank` instead.
2024-01-26 13:24:32 -08:00
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?)
2024-01-26 13:32:29 -08:00
^^^^^^^^^^^^^^^^ Use `compact_blank` instead.
2024-01-26 13:24:32 -08:00
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? }
2024-01-26 13:32:29 -08:00
^^^^^^^^^^^^^^^^^^^^^^^^^^ Use `compact_blank!` instead.
2024-01-26 13:24:32 -08:00
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?)
2024-01-26 13:32:29 -08:00
^^^^^^^^^^^^^^^^^^^ Use `compact_blank!` instead.
2024-01-26 13:24:32 -08:00
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? }
2024-01-26 13:32:29 -08:00
^^^^^^^^^^^^^^^^^^^^^^^^ Use `compact_blank!` instead.
2024-01-26 13:24:32 -08:00
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?)
2024-01-26 13:32:29 -08:00
^^^^^^^^^^^^^^^^^ Use `compact_blank!` instead.
2024-01-26 13:24:32 -08:00
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?) }
2024-01-26 13:32:29 -08:00
^^^^^^^^^^^^^^^^ Use `compact_blank` instead.
2024-01-26 13:24:32 -08:00
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