44 lines
1.2 KiB
Ruby
44 lines
1.2 KiB
Ruby
![]() |
# frozen_string_literal: true
|
||
|
|
||
|
require "rubocops/safe_navigation_with_blank"
|
||
|
|
||
|
RSpec.describe RuboCop::Cop::Homebrew::SafeNavigationWithBlank, :config do
|
||
|
context "when in a conditional" do
|
||
|
it "registers an offense on a single conditional" do
|
||
|
expect_offense(<<~RUBY)
|
||
|
do_something unless foo&.blank?
|
||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Avoid calling `blank?` with the safe navigation operator in conditionals.
|
||
|
RUBY
|
||
|
|
||
|
expect_correction(<<~RUBY)
|
||
|
do_something unless foo.blank?
|
||
|
RUBY
|
||
|
end
|
||
|
|
||
|
it "registers an offense on chained conditionals" do
|
||
|
expect_offense(<<~RUBY)
|
||
|
do_something unless foo&.bar&.blank?
|
||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Avoid calling `blank?` with the safe navigation operator in conditionals.
|
||
|
RUBY
|
||
|
|
||
|
expect_correction(<<~RUBY)
|
||
|
do_something unless foo&.bar.blank?
|
||
|
RUBY
|
||
|
end
|
||
|
|
||
|
it "does not register an offense on `.blank?`" do
|
||
|
expect_no_offenses(<<~RUBY)
|
||
|
return if foo.blank?
|
||
|
RUBY
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "when outside a conditional" do
|
||
|
it "registers no offense" do
|
||
|
expect_no_offenses(<<~RUBY)
|
||
|
bar = foo&.blank?
|
||
|
RUBY
|
||
|
end
|
||
|
end
|
||
|
end
|