forked from rubocop/rubocop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
useless_restrict_on_send_spec.rb
88 lines (80 loc) · 2.29 KB
/
useless_restrict_on_send_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# frozen_string_literal: true
RSpec.describe RuboCop::Cop::InternalAffairs::UselessRestrictOnSend, :config do
it 'registers an offense when using `RESTRICT_ON_SEND` and not defines send callback method' do
expect_offense(<<~RUBY)
class FooCop
RESTRICT_ON_SEND = %i[bad_method].freeze
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Useless `RESTRICT_ON_SEND` is defined.
end
RUBY
expect_correction(<<~RUBY)
class FooCop
#{' '}
end
RUBY
end
it 'does not register an offense when using `RESTRICT_ON_SEND` and defines `on_send`' do
expect_no_offenses(<<~RUBY)
class FooCop
RESTRICT_ON_SEND = %i[bad_method].freeze
def on_send(node)
# ...
end
end
RUBY
end
it 'does not register an offense when using `RESTRICT_ON_SEND` and defines `on_send` with alias' do
expect_no_offenses(<<~RUBY)
class FooCop
RESTRICT_ON_SEND = %i[bad_method].freeze
def on_def(node)
# ...
end
alias on_send on_def
end
RUBY
end
it 'does not register an offense when using `RESTRICT_ON_SEND` and defines `on_send` with alias_method' do
expect_no_offenses(<<~RUBY)
class FooCop
RESTRICT_ON_SEND = %i[bad_method].freeze
def on_def(node)
# ...
end
alias_method :on_send, :on_def
end
RUBY
end
it 'does not register an offense when using `RESTRICT_ON_SEND` and defines `after_send`' do
expect_no_offenses(<<~RUBY)
class FooCop
RESTRICT_ON_SEND = %i[bad_method].freeze
def after_send(node)
# ...
end
end
RUBY
end
it 'does not register an offense when using `RESTRICT_ON_SEND` and defines `after_send` with alias' do
expect_no_offenses(<<~RUBY)
class FooCop
RESTRICT_ON_SEND = %i[bad_method].freeze
def after_send(node)
# ...
end
alias after_send any
end
RUBY
end
it 'does not register an offense when using `RESTRICT_ON_SEND` and defines `after_send` with alias_method' do
expect_no_offenses(<<~RUBY)
class FooCop
RESTRICT_ON_SEND = %i[bad_method].freeze
def after_send(node)
# ...
end
self.alias_method "after_send", "any"
end
RUBY
end
end