Skip to content

Commit 1dac91f

Browse files
authored
1 parent 91604fc commit 1dac91f

10 files changed

+93
-103
lines changed

spec/linters/match_requires_with_includes.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module RuboCop
22
module Cop
3-
class MatchRequiresWithIncludes < RuboCop::Cop::Cop
3+
class MatchRequiresWithIncludes < RuboCop::Cop::Base
44
REQ_FOR_INCLUDES = {
55
'VCAP::CloudController::Presenters::Mixins::MetadataPresentationHelpers' =>
66
'presenters/mixins/metadata_presentation_helpers',
@@ -25,7 +25,7 @@ def on_send(node)
2525
req = REQ_FOR_INCLUDES[included_module]
2626
return unless req && !@requires.member?(req)
2727

28-
add_offense(node, location: :expression, message: "Included '#{included_module}' but need to require '#{req}'")
28+
add_offense(node.loc.expression, message: "Included '#{included_module}' but need to require '#{req}'")
2929
end
3030

3131
private

spec/linters/match_requires_with_includes_spec.rb

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
end
1919

2020
it 'registers an offense if MetadataPresentationHelpers is included without requiring it' do
21-
inspect_source(<<~RUBY)
21+
result = inspect_source(<<~RUBY)
2222
require 'cows'
2323
module M
2424
class C
@@ -27,12 +27,12 @@ class C
2727
end
2828
RUBY
2929

30-
expect(cop.offenses.size).to eq(1)
31-
expect(cop.messages).to eq([missing_metadata_presentation_helper])
30+
expect(result.size).to eq(1)
31+
expect(result.map(&:message)).to eq([missing_metadata_presentation_helper])
3232
end
3333

3434
it 'does not register an offense if metadata_presentation_helpers required' do
35-
inspect_source(<<~RUBY)
35+
result = inspect_source(<<~RUBY)
3636
require 'presenters/mixins/metadata_presentation_helpers'
3737
module M
3838
class C
@@ -41,11 +41,11 @@ class C
4141
end
4242
RUBY
4343

44-
expect(cop.offenses.size).to eq(0)
44+
expect(result.size).to eq(0)
4545
end
4646

4747
it 'registers an offense if SubResource is included without requiring it' do
48-
inspect_source(<<~RUBY)
48+
result = inspect_source(<<~RUBY)
4949
require 'cows'
5050
module M
5151
class C
@@ -54,12 +54,12 @@ class C
5454
end
5555
RUBY
5656

57-
expect(cop.offenses.size).to eq(1)
58-
expect(cop.messages).to eq([missing_sub_resource])
57+
expect(result.size).to eq(1)
58+
expect(result.map(&:message)).to eq([missing_sub_resource])
5959
end
6060

6161
it 'does not register an offense if metadata_presentation_helpers required' do
62-
inspect_source(<<~RUBY)
62+
result = inspect_source(<<~RUBY)
6363
require 'controllers/v3/mixins/sub_resource'
6464
module M
6565
class C
@@ -68,11 +68,11 @@ class C
6868
end
6969
RUBY
7070

71-
expect(cop.offenses.size).to eq(0)
71+
expect(result.size).to eq(0)
7272
end
7373

7474
it 'finds multiple offences' do
75-
inspect_source(<<~RUBY)
75+
result = inspect_source(<<~RUBY)
7676
require 'cows'
7777
module M
7878
class C
@@ -81,7 +81,8 @@ class C
8181
end
8282
end
8383
RUBY
84-
expect(cop.offenses.size).to eq(2)
85-
expect(cop.messages).to contain_exactly(missing_metadata_presentation_helper, missing_sub_resource)
84+
85+
expect(result.size).to eq(2)
86+
expect(result.map(&:message)).to contain_exactly(missing_metadata_presentation_helper, missing_sub_resource)
8687
end
8788
end

spec/linters/migration/add_constraint_name.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module RuboCop
22
module Cop
33
module Migration
4-
class AddConstraintName < RuboCop::Cop::Cop
4+
class AddConstraintName < RuboCop::Cop::Base
55
# Postgres and MySQL have different naming conventions, so if we need to remove them we cannot predict accurately what the constraint name would be.
66
MSG = 'Please explicitly name your index or constraint.'.freeze
77
CONSTRAINT_METHODS = %i[
@@ -28,7 +28,7 @@ def on_block(node)
2828
end
2929
end
3030

31-
add_offense(send_node, location: :expression) if missing_named_constraint
31+
add_offense(send_node.loc.expression) if missing_named_constraint
3232
end
3333
end
3434

spec/linters/migration/add_constraint_name_spec.rb

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,111 +11,106 @@
1111

1212
RSpec.shared_examples 'a cop that validates explicit names are added to the index' do |method_name|
1313
it 'registers an offense if index is called without a name' do
14-
inspect_source(<<~RUBY)
14+
result = inspect_source(<<~RUBY)
1515
create_table :jobs do
1616
#{method_name} :foo
1717
end
1818
RUBY
1919

20-
expect(cop.offenses.size).to eq(1)
21-
expect(cop.messages).to eq(['Please explicitly name your index or constraint.'])
20+
expect(result.size).to eq(1)
21+
expect(result.map(&:message)).to eq(['Please explicitly name your index or constraint.'])
2222
end
2323

2424
it 'does not register an offense if index is called with a name' do
25-
inspect_source(<<~RUBY)
25+
result = inspect_source(<<~RUBY)
2626
create_table :jobs do
2727
#{method_name} :foo, name: :bar
2828
end
2929
RUBY
3030

31-
expect(cop.offenses.size).to eq(0)
32-
expect(cop.messages).to be_empty
31+
expect(result.size).to eq(0)
3332
end
3433
end
3534

3635
RSpec.shared_examples 'a cop that validates explicit names are used when adding a column with an index' do |method_name|
3736
context 'and the column is adding an index' do
3837
it 'registers an offense if index is called without a name' do
39-
inspect_source(<<~RUBY)
38+
result = inspect_source(<<~RUBY)
4039
create_table :jobs do
4140
#{method_name} :foo, :index
4241
end
4342
RUBY
4443

45-
expect(cop.offenses.size).to eq(1)
46-
expect(cop.messages).to eq(['Please explicitly name your index or constraint.'])
44+
expect(result.size).to eq(1)
45+
expect(result.map(&:message)).to eq(['Please explicitly name your index or constraint.'])
4746
end
4847

4948
it 'does not register an offense if index is called with a name' do
50-
inspect_source(<<~RUBY)
49+
result = inspect_source(<<~RUBY)
5150
create_table :jobs do
5251
#{method_name} :foo, index: {name: 'foo'}
5352
end
5453
RUBY
5554

56-
expect(cop.offenses.size).to eq(0)
57-
expect(cop.messages).to be_empty
55+
expect(result.size).to eq(0)
5856
end
5957
end
6058

6159
context 'and the column is adding a unique constraint' do
6260
it 'registers an offense if unique is called without a unique_constraint_name' do
63-
inspect_source(<<~RUBY)
61+
result = inspect_source(<<~RUBY)
6462
create_table :jobs do
6563
#{method_name} :foo, unique: true
6664
end
6765
RUBY
6866

69-
expect(cop.offenses.size).to eq(1)
70-
expect(cop.messages).to eq(['Please explicitly name your index or constraint.'])
67+
expect(result.size).to eq(1)
68+
expect(result.map(&:message)).to eq(['Please explicitly name your index or constraint.'])
7169
end
7270

7371
it 'does not register an offense if unique is called with a unique_constraint_name' do
74-
inspect_source(<<~RUBY)
72+
result = inspect_source(<<~RUBY)
7573
create_table :jobs do
7674
#{method_name} :foo, unique: true, unique_constraint_name: 'something_real_unique'
7775
end
7876
RUBY
7977

80-
expect(cop.offenses.size).to eq(0)
81-
expect(cop.messages).to be_empty
78+
expect(result.size).to eq(0)
8279
end
8380
end
8481

8582
context 'and the column is adding a primary_key constraint' do
8683
it 'registers an offense if unique is called without a primary_key_constraint_name' do
87-
inspect_source(<<~RUBY)
84+
result = inspect_source(<<~RUBY)
8885
create_table :jobs do
8986
#{method_name} :foo, primary_key: true
9087
end
9188
RUBY
9289

93-
expect(cop.offenses.size).to eq(1)
94-
expect(cop.messages).to eq(['Please explicitly name your index or constraint.'])
90+
expect(result.size).to eq(1)
91+
expect(result.map(&:message)).to eq(['Please explicitly name your index or constraint.'])
9592
end
9693

9794
it 'does not register an offense if primary_key is called with a primary_key_constraint_name' do
98-
inspect_source(<<~RUBY)
95+
result = inspect_source(<<~RUBY)
9996
create_table :jobs do
10097
#{method_name} :foo, primary_key: true, primary_key_constraint_name: 'something_real_unique'
10198
end
10299
RUBY
103100

104-
expect(cop.offenses.size).to eq(0)
105-
expect(cop.messages).to be_empty
101+
expect(result.size).to eq(0)
106102
end
107103
end
108104

109105
context 'and the column is not adding any index or constraint' do
110106
it 'does not register an offense' do
111-
inspect_source(<<~RUBY)
107+
result = inspect_source(<<~RUBY)
112108
create_table :jobs do
113109
#{method_name} :foo
114110
end
115111
RUBY
116112

117-
expect(cop.offenses.size).to eq(0)
118-
expect(cop.messages).to be_empty
113+
expect(result.size).to eq(0)
119114
end
120115
end
121116
end

spec/linters/migration/include_string_size.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module RuboCop
22
module Cop
33
module Migration
4-
class IncludeStringSize < RuboCop::Cop::Cop
4+
class IncludeStringSize < RuboCop::Cop::Base
55
# Postgres and MySQL have different size limits on String and TEXT fields
66
# MySQL: `String` is `varchar(255)`, `String, text: true` has a max size of 16_000 for UTF8 encoded DBs
77
# Postgres: `String` and `String, text: true` are `TEXT` and has a max size of ~1GB
@@ -25,13 +25,13 @@ def on_block(node)
2525
has_text = node_has_hash_key?(inner_node, :text, &:truthy_literal?)
2626

2727
if has_text
28-
add_offense(inner_node, location: :expression, message: STRING_TEXT_WARNING)
28+
add_offense(inner_node.loc.expression, message: STRING_TEXT_WARNING)
2929
next
3030
end
3131

3232
has_size = node_has_hash_key?(inner_node, :size)
3333

34-
add_offense(inner_node, location: :expression, message: STRING_SIZE_WARNING) unless has_size
34+
add_offense(inner_node.loc.expression, message: STRING_SIZE_WARNING) unless has_size
3535
end
3636
end
3737

0 commit comments

Comments
 (0)