shard-ameba/spec/ameba/rule/style/is_a_nil_spec.cr
2022-12-21 21:13:22 +01:00

39 lines
938 B
Crystal

require "../../../spec_helper"
module Ameba::Rule::Style
describe IsANil do
subject = IsANil.new
it "doesn't report if there are no is_a?(Nil) calls" do
expect_no_issues subject, <<-CRYSTAL
a = 1
a.nil?
a.is_a?(NilLiteral)
a.is_a?(Custom::Nil)
CRYSTAL
end
it "reports if there is a call to is_a?(Nil) without receiver" do
source = expect_issue subject, <<-CRYSTAL
a = is_a?(Nil)
# ^^^ error: Use `nil?` instead of `is_a?(Nil)`
CRYSTAL
expect_correction source, <<-CRYSTAL
a = self.nil?
CRYSTAL
end
it "reports if there is a call to is_a?(Nil) with receiver" do
source = expect_issue subject, <<-CRYSTAL
a.is_a?(Nil)
# ^^^ error: Use `nil?` instead of `is_a?(Nil)`
CRYSTAL
expect_correction source, <<-CRYSTAL
a.nil?
CRYSTAL
end
end
end