puppet-lint 2.3.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +74 -0
  3. data/.rubocop_todo.yml +89 -0
  4. data/.travis.yml +11 -9
  5. data/CHANGELOG.md +54 -0
  6. data/Gemfile +3 -0
  7. data/Rakefile +14 -3
  8. data/appveyor.yml +1 -4
  9. data/bin/puppet-lint +1 -1
  10. data/lib/puppet-lint.rb +25 -21
  11. data/lib/puppet-lint/bin.rb +15 -19
  12. data/lib/puppet-lint/checkplugin.rb +24 -17
  13. data/lib/puppet-lint/checks.rb +42 -31
  14. data/lib/puppet-lint/configuration.rb +11 -8
  15. data/lib/puppet-lint/data.rb +236 -164
  16. data/lib/puppet-lint/lexer.rb +225 -203
  17. data/lib/puppet-lint/lexer/token.rb +34 -18
  18. data/lib/puppet-lint/optparser.rb +33 -30
  19. data/lib/puppet-lint/plugins.rb +42 -38
  20. data/lib/puppet-lint/plugins/check_classes/arrow_on_right_operand_line.rb +26 -28
  21. data/lib/puppet-lint/plugins/check_classes/autoloader_layout.rb +21 -20
  22. data/lib/puppet-lint/plugins/check_classes/class_inherits_from_params_class.rb +8 -9
  23. data/lib/puppet-lint/plugins/check_classes/code_on_top_scope.rb +9 -8
  24. data/lib/puppet-lint/plugins/check_classes/inherits_across_namespaces.rb +12 -11
  25. data/lib/puppet-lint/plugins/check_classes/names_containing_dash.rb +13 -12
  26. data/lib/puppet-lint/plugins/check_classes/names_containing_uppercase.rb +14 -13
  27. data/lib/puppet-lint/plugins/check_classes/nested_classes_or_defines.rb +9 -10
  28. data/lib/puppet-lint/plugins/check_classes/parameter_order.rb +40 -31
  29. data/lib/puppet-lint/plugins/check_classes/right_to_left_relationship.rb +3 -2
  30. data/lib/puppet-lint/plugins/check_classes/variable_scope.rb +21 -24
  31. data/lib/puppet-lint/plugins/check_comments/slash_comments.rb +3 -2
  32. data/lib/puppet-lint/plugins/check_comments/star_comments.rb +6 -5
  33. data/lib/puppet-lint/plugins/check_conditionals/case_without_default.rb +21 -20
  34. data/lib/puppet-lint/plugins/check_conditionals/selector_inside_resource.rb +10 -13
  35. data/lib/puppet-lint/plugins/check_documentation/documentation.rb +26 -17
  36. data/lib/puppet-lint/plugins/check_nodes/unquoted_node_name.rb +11 -11
  37. data/lib/puppet-lint/plugins/check_resources/duplicate_params.rb +4 -3
  38. data/lib/puppet-lint/plugins/check_resources/ensure_first_param.rb +17 -18
  39. data/lib/puppet-lint/plugins/check_resources/ensure_not_symlink_target.rb +17 -16
  40. data/lib/puppet-lint/plugins/check_resources/file_mode.rb +22 -23
  41. data/lib/puppet-lint/plugins/check_resources/unquoted_file_mode.rb +14 -13
  42. data/lib/puppet-lint/plugins/check_resources/unquoted_resource_title.rb +9 -8
  43. data/lib/puppet-lint/plugins/check_strings/double_quoted_strings.rb +8 -8
  44. data/lib/puppet-lint/plugins/check_strings/only_variable_string.rb +29 -42
  45. data/lib/puppet-lint/plugins/check_strings/puppet_url_without_modules.rb +5 -4
  46. data/lib/puppet-lint/plugins/check_strings/quoted_booleans.rb +3 -2
  47. data/lib/puppet-lint/plugins/check_strings/single_quote_string_with_variables.rb +4 -3
  48. data/lib/puppet-lint/plugins/check_strings/variables_not_enclosed.rb +3 -2
  49. data/lib/puppet-lint/plugins/check_variables/variable_contains_dash.rb +9 -8
  50. data/lib/puppet-lint/plugins/check_variables/variable_is_lowercase.rb +9 -8
  51. data/lib/puppet-lint/plugins/check_whitespace/140chars.rb +9 -9
  52. data/lib/puppet-lint/plugins/check_whitespace/2sp_soft_tabs.rb +4 -3
  53. data/lib/puppet-lint/plugins/check_whitespace/80chars.rb +10 -10
  54. data/lib/puppet-lint/plugins/check_whitespace/arrow_alignment.rb +23 -22
  55. data/lib/puppet-lint/plugins/check_whitespace/hard_tabs.rb +3 -2
  56. data/lib/puppet-lint/plugins/check_whitespace/trailing_whitespace.rb +3 -2
  57. data/lib/puppet-lint/tasks/puppet-lint.rb +3 -3
  58. data/lib/puppet-lint/version.rb +1 -1
  59. data/puppet-lint.gemspec +4 -4
  60. data/spec/puppet-lint/bin_spec.rb +268 -140
  61. data/spec/puppet-lint/checks_spec.rb +229 -0
  62. data/spec/puppet-lint/configuration_spec.rb +10 -9
  63. data/spec/puppet-lint/data_spec.rb +84 -0
  64. data/spec/puppet-lint/ignore_overrides_spec.rb +71 -40
  65. data/spec/puppet-lint/lexer/token_spec.rb +1 -1
  66. data/spec/puppet-lint/lexer_spec.rb +306 -73
  67. data/spec/puppet-lint/plugins/check_classes/arrow_on_right_operand_line_spec.rb +12 -6
  68. data/spec/puppet-lint/plugins/check_classes/autoloader_layout_spec.rb +10 -10
  69. data/spec/puppet-lint/plugins/check_classes/class_inherits_from_params_class_spec.rb +15 -11
  70. data/spec/puppet-lint/plugins/check_classes/code_on_top_scope_spec.rb +26 -21
  71. data/spec/puppet-lint/plugins/check_classes/inherits_across_namespaces_spec.rb +3 -3
  72. data/spec/puppet-lint/plugins/check_classes/name_contains_uppercase_spec.rb +4 -5
  73. data/spec/puppet-lint/plugins/check_classes/names_containing_dash_spec.rb +13 -0
  74. data/spec/puppet-lint/plugins/check_classes/nested_classes_or_defines_spec.rb +33 -25
  75. data/spec/puppet-lint/plugins/check_classes/parameter_order_spec.rb +80 -55
  76. data/spec/puppet-lint/plugins/check_classes/right_to_left_relationship_spec.rb +2 -2
  77. data/spec/puppet-lint/plugins/check_classes/variable_scope_spec.rb +165 -130
  78. data/spec/puppet-lint/plugins/check_comments/slash_comments_spec.rb +2 -2
  79. data/spec/puppet-lint/plugins/check_comments/star_comments_spec.rb +53 -35
  80. data/spec/puppet-lint/plugins/check_conditionals/case_without_default_spec.rb +59 -49
  81. data/spec/puppet-lint/plugins/check_conditionals/selector_inside_resource_spec.rb +18 -14
  82. data/spec/puppet-lint/plugins/check_documentation/documentation_spec.rb +14 -10
  83. data/spec/puppet-lint/plugins/check_nodes/unquoted_node_name_spec.rb +7 -7
  84. data/spec/puppet-lint/plugins/check_resources/duplicate_params_spec.rb +54 -44
  85. data/spec/puppet-lint/plugins/check_resources/ensure_first_param_spec.rb +114 -89
  86. data/spec/puppet-lint/plugins/check_resources/ensure_not_symlink_target_spec.rb +41 -30
  87. data/spec/puppet-lint/plugins/check_resources/file_mode_spec.rb +46 -40
  88. data/spec/puppet-lint/plugins/check_resources/unquoted_file_mode_spec.rb +46 -40
  89. data/spec/puppet-lint/plugins/check_resources/unquoted_resource_title_spec.rb +95 -71
  90. data/spec/puppet-lint/plugins/check_strings/double_quoted_strings_spec.rb +28 -24
  91. data/spec/puppet-lint/plugins/check_strings/only_variable_string_spec.rb +11 -9
  92. data/spec/puppet-lint/plugins/check_strings/puppet_url_without_modules_spec.rb +1 -2
  93. data/spec/puppet-lint/plugins/check_strings/single_quote_string_with_variables_spec.rb +18 -14
  94. data/spec/puppet-lint/plugins/check_variables/variable_contains_dash_spec.rb +1 -1
  95. data/spec/puppet-lint/plugins/check_variables/variable_is_lowercase_spec.rb +1 -1
  96. data/spec/puppet-lint/plugins/check_whitespace/140chars_spec.rb +22 -15
  97. data/spec/puppet-lint/plugins/check_whitespace/2sp_soft_tabs_spec.rb +8 -6
  98. data/spec/puppet-lint/plugins/check_whitespace/80chars_spec.rb +23 -29
  99. data/spec/puppet-lint/plugins/check_whitespace/arrow_alignment_spec.rb +588 -494
  100. data/spec/puppet-lint/plugins/check_whitespace/hard_tabs_spec.rb +1 -1
  101. data/spec/puppet-lint/plugins/check_whitespace/trailing_whitespace_spec.rb +27 -19
  102. data/spec/puppet-lint_spec.rb +2 -12
  103. data/spec/spec_helper.rb +35 -30
  104. metadata +6 -5
  105. data/lib/puppet-lint/monkeypatches.rb +0 -2
  106. data/lib/puppet-lint/monkeypatches/string_percent.rb +0 -52
  107. data/lib/puppet-lint/monkeypatches/string_prepend.rb +0 -13
@@ -141,26 +141,28 @@ describe 'file_mode' do
141
141
  end
142
142
 
143
143
  context 'multi body file bad modes selector' do
144
- let(:code) { "
145
- file {
146
- '/tmp/foo1':
147
- ensure => $foo ? { default => absent },
148
- mode => 644;
149
- '/tmp/foo2':
150
- mode => 644;
151
- '/tmp/foo3':
152
- mode => 644;
153
- }"
154
- }
144
+ let(:code) do
145
+ <<-END
146
+ file {
147
+ '/tmp/foo1':
148
+ ensure => $foo ? { default => absent },
149
+ mode => 644;
150
+ '/tmp/foo2':
151
+ mode => 644;
152
+ '/tmp/foo3':
153
+ mode => 644;
154
+ }
155
+ END
156
+ end
155
157
 
156
158
  it 'should detect 3 problems' do
157
159
  expect(problems).to have(3).problems
158
160
  end
159
161
 
160
162
  it 'should create three warnings' do
161
- expect(problems).to contain_warning(sprintf(msg)).on_line(5).in_column(21)
162
- expect(problems).to contain_warning(sprintf(msg)).on_line(7).in_column(21)
163
- expect(problems).to contain_warning(sprintf(msg)).on_line(9).in_column(21)
163
+ expect(problems).to contain_warning(sprintf(msg)).on_line(4).in_column(23)
164
+ expect(problems).to contain_warning(sprintf(msg)).on_line(6).in_column(23)
165
+ expect(problems).to contain_warning(sprintf(msg)).on_line(8).in_column(23)
164
166
  end
165
167
  end
166
168
  end
@@ -251,38 +253,42 @@ describe 'file_mode' do
251
253
  end
252
254
 
253
255
  context 'multi body file bad modes selector' do
254
- let(:code) { "
255
- file {
256
- '/tmp/foo1':
257
- ensure => $foo ? { default => absent },
258
- mode => 644;
259
- '/tmp/foo2':
260
- mode => 644;
261
- '/tmp/foo3':
262
- mode => 644;
263
- }"
264
- }
265
-
266
- let(:fixed) { "
267
- file {
268
- '/tmp/foo1':
269
- ensure => $foo ? { default => absent },
270
- mode => '0644';
271
- '/tmp/foo2':
272
- mode => '0644';
273
- '/tmp/foo3':
274
- mode => '0644';
275
- }"
276
- }
256
+ let(:code) do
257
+ <<-END
258
+ file {
259
+ '/tmp/foo1':
260
+ ensure => $foo ? { default => absent },
261
+ mode => 644;
262
+ '/tmp/foo2':
263
+ mode => 644;
264
+ '/tmp/foo3':
265
+ mode => 644;
266
+ }
267
+ END
268
+ end
269
+
270
+ let(:fixed) do
271
+ <<-END
272
+ file {
273
+ '/tmp/foo1':
274
+ ensure => $foo ? { default => absent },
275
+ mode => '0644';
276
+ '/tmp/foo2':
277
+ mode => '0644';
278
+ '/tmp/foo3':
279
+ mode => '0644';
280
+ }
281
+ END
282
+ end
277
283
 
278
284
  it 'should detect 3 problems' do
279
285
  expect(problems).to have(3).problems
280
286
  end
281
287
 
282
288
  it 'should fix 3 problems' do
283
- expect(problems).to contain_fixed(msg).on_line(5).in_column(21)
284
- expect(problems).to contain_fixed(msg).on_line(7).in_column(21)
285
- expect(problems).to contain_fixed(msg).on_line(9).in_column(21)
289
+ expect(problems).to contain_fixed(msg).on_line(4).in_column(23)
290
+ expect(problems).to contain_fixed(msg).on_line(6).in_column(23)
291
+ expect(problems).to contain_fixed(msg).on_line(8).in_column(23)
286
292
  end
287
293
 
288
294
  it 'should zero pad the file modes and change them to strings' do
@@ -37,26 +37,28 @@ describe 'unquoted_file_mode' do
37
37
  end
38
38
 
39
39
  context 'multi body file bad modes selector' do
40
- let(:code) { "
41
- file {
42
- '/tmp/foo1':
43
- ensure => $foo ? { default => absent },
44
- mode => 644;
45
- '/tmp/foo2':
46
- mode => 644;
47
- '/tmp/foo3':
48
- mode => 644;
49
- }"
50
- }
40
+ let(:code) do
41
+ <<-END
42
+ file {
43
+ '/tmp/foo1':
44
+ ensure => $foo ? { default => absent },
45
+ mode => 644;
46
+ '/tmp/foo2':
47
+ mode => 644;
48
+ '/tmp/foo3':
49
+ mode => 644;
50
+ }
51
+ END
52
+ end
51
53
 
52
54
  it 'should detect 3 problems' do
53
55
  expect(problems).to have(3).problems
54
56
  end
55
57
 
56
58
  it 'should create three warnings' do
57
- expect(problems).to contain_warning(sprintf(msg)).on_line(5).in_column(21)
58
- expect(problems).to contain_warning(sprintf(msg)).on_line(7).in_column(21)
59
- expect(problems).to contain_warning(sprintf(msg)).on_line(9).in_column(21)
59
+ expect(problems).to contain_warning(sprintf(msg)).on_line(4).in_column(23)
60
+ expect(problems).to contain_warning(sprintf(msg)).on_line(6).in_column(23)
61
+ expect(problems).to contain_warning(sprintf(msg)).on_line(8).in_column(23)
60
62
  end
61
63
  end
62
64
  end
@@ -115,38 +117,42 @@ describe 'unquoted_file_mode' do
115
117
  end
116
118
 
117
119
  context 'multi body file bad modes selector' do
118
- let(:code) { "
119
- file {
120
- '/tmp/foo1':
121
- ensure => $foo ? { default => absent },
122
- mode => 644;
123
- '/tmp/foo2':
124
- mode => 644;
125
- '/tmp/foo3':
126
- mode => 644;
127
- }"
128
- }
129
-
130
- let(:fixed) { "
131
- file {
132
- '/tmp/foo1':
133
- ensure => $foo ? { default => absent },
134
- mode => '644';
135
- '/tmp/foo2':
136
- mode => '644';
137
- '/tmp/foo3':
138
- mode => '644';
139
- }"
140
- }
120
+ let(:code) do
121
+ <<-END
122
+ file {
123
+ '/tmp/foo1':
124
+ ensure => $foo ? { default => absent },
125
+ mode => 644;
126
+ '/tmp/foo2':
127
+ mode => 644;
128
+ '/tmp/foo3':
129
+ mode => 644;
130
+ }
131
+ END
132
+ end
133
+
134
+ let(:fixed) do
135
+ <<-END
136
+ file {
137
+ '/tmp/foo1':
138
+ ensure => $foo ? { default => absent },
139
+ mode => '644';
140
+ '/tmp/foo2':
141
+ mode => '644';
142
+ '/tmp/foo3':
143
+ mode => '644';
144
+ }
145
+ END
146
+ end
141
147
 
142
148
  it 'should detect 3 problems' do
143
149
  expect(problems).to have(3).problems
144
150
  end
145
151
 
146
152
  it 'should fix 3 problems' do
147
- expect(problems).to contain_fixed(msg).on_line(5).in_column(21)
148
- expect(problems).to contain_fixed(msg).on_line(7).in_column(21)
149
- expect(problems).to contain_fixed(msg).on_line(9).in_column(21)
153
+ expect(problems).to contain_fixed(msg).on_line(4).in_column(23)
154
+ expect(problems).to contain_fixed(msg).on_line(6).in_column(23)
155
+ expect(problems).to contain_fixed(msg).on_line(8).in_column(23)
150
156
  end
151
157
 
152
158
  it 'should quote the file modes' do
@@ -13,7 +13,7 @@ describe 'unquoted_resource_title' do
13
13
  end
14
14
 
15
15
  context 'unquoted resource title on single line resource' do
16
- let(:code) { "file { foo: }" }
16
+ let(:code) { 'file { foo: }' }
17
17
 
18
18
  it 'should only detect a single problem' do
19
19
  expect(problems).to have(1).problem
@@ -25,10 +25,12 @@ describe 'unquoted_resource_title' do
25
25
  end
26
26
 
27
27
  context 'quoted resource title on multi line resource' do
28
- let(:code) { "
29
- file { 'foo':
30
- }"
31
- }
28
+ let(:code) do
29
+ <<-END
30
+ file { 'foo':
31
+ }
32
+ END
33
+ end
32
34
 
33
35
  it 'should not detect any problems' do
34
36
  expect(problems).to have(0).problems
@@ -36,27 +38,31 @@ describe 'unquoted_resource_title' do
36
38
  end
37
39
 
38
40
  context 'unquoted resource title on multi line resource' do
39
- let(:code) { "
40
- file { foo:
41
- }"
42
- }
41
+ let(:code) do
42
+ <<-END
43
+ file { foo:
44
+ }
45
+ END
46
+ end
43
47
 
44
48
  it 'should only detect a single problem' do
45
49
  expect(problems).to have(1).problem
46
50
  end
47
51
 
48
52
  it 'should create a warning' do
49
- expect(problems).to contain_warning(msg).on_line(2).in_column(16)
53
+ expect(problems).to contain_warning(msg).on_line(1).in_column(18)
50
54
  end
51
55
  end
52
56
 
53
57
  context 'condensed resources with quoted titles' do
54
- let(:code) { "
55
- file {
56
- 'foo': ;
57
- 'bar': ;
58
- }"
59
- }
58
+ let(:code) do
59
+ <<-END
60
+ file {
61
+ 'foo': ;
62
+ 'bar': ;
63
+ }
64
+ END
65
+ end
60
66
 
61
67
  it 'should not detect any problems' do
62
68
  expect(problems).to have(0).problems
@@ -64,19 +70,21 @@ describe 'unquoted_resource_title' do
64
70
  end
65
71
 
66
72
  context 'condensed resources with an unquoted title' do
67
- let(:code) { "
68
- file {
69
- 'foo': ;
70
- bar: ;
71
- }"
72
- }
73
+ let(:code) do
74
+ <<-END
75
+ file {
76
+ 'foo': ;
77
+ bar: ;
78
+ }
79
+ END
80
+ end
73
81
 
74
82
  it 'should only detect a single problem' do
75
83
  expect(problems).to have(1).problem
76
84
  end
77
85
 
78
86
  it 'should create a warning' do
79
- expect(problems).to contain_warning(msg).on_line(4).in_column(11)
87
+ expect(problems).to contain_warning(msg).on_line(3).in_column(13)
80
88
  end
81
89
  end
82
90
 
@@ -89,15 +97,17 @@ describe 'unquoted_resource_title' do
89
97
  end
90
98
 
91
99
  context 'resource inside a case statement' do
92
- let(:code) { "
93
- case $ensure {
94
- 'absent': {
95
- file { \"some_file_${name}\":
96
- ensure => absent,
100
+ let(:code) do
101
+ <<-END
102
+ case $ensure {
103
+ 'absent': {
104
+ file { "some_file_${name}":
105
+ ensure => absent,
106
+ }
97
107
  }
98
108
  }
99
- }"
100
- }
109
+ END
110
+ end
101
111
 
102
112
  it 'should not detect any problems' do
103
113
  expect(problems).to have(0).problems
@@ -105,12 +115,14 @@ describe 'unquoted_resource_title' do
105
115
  end
106
116
 
107
117
  context 'issue #116' do
108
- let(:code) { "
109
- $config_file_init = $::operatingsystem ? {
110
- /(?i:Debian|Ubuntu|Mint)/ => '/etc/default/foo',
111
- default => '/etc/sysconfig/foo',
112
- }"
113
- }
118
+ let(:code) do
119
+ <<-END
120
+ $config_file_init = $::operatingsystem ? {
121
+ /(?i:Debian|Ubuntu|Mint)/ => '/etc/default/foo',
122
+ default => '/etc/sysconfig/foo',
123
+ }
124
+ END
125
+ end
114
126
 
115
127
  it 'should not detect any problems' do
116
128
  expect(problems).to have(0).problems
@@ -118,19 +130,21 @@ describe 'unquoted_resource_title' do
118
130
  end
119
131
 
120
132
  context 'case statement' do
121
- let(:code) { %{
122
- case $operatingsystem {
123
- centos: {
124
- $version = '1.2.3'
125
- }
126
- solaris: {
127
- $version = '3.2.1'
128
- }
129
- default: {
130
- fail("Module ${module_name} is not supported on ${operatingsystem}")
133
+ let(:code) do
134
+ <<-END
135
+ case $operatingsystem {
136
+ centos: {
137
+ $version = '1.2.3'
138
+ }
139
+ solaris: {
140
+ $version = '3.2.1'
141
+ }
142
+ default: {
143
+ fail("Module ${module_name} is not supported on ${operatingsystem}")
144
+ }
131
145
  }
132
- }}
133
- }
146
+ END
147
+ end
134
148
 
135
149
  it 'should not detect any problems' do
136
150
  expect(problems).to have(0).problems
@@ -148,7 +162,7 @@ describe 'unquoted_resource_title' do
148
162
  end
149
163
 
150
164
  context 'unquoted resource title on single line resource' do
151
- let(:code) { "file { foo: }" }
165
+ let(:code) { 'file { foo: }' }
152
166
 
153
167
  it 'should only detect a single problem' do
154
168
  expect(problems).to have(1).problem
@@ -164,21 +178,26 @@ describe 'unquoted_resource_title' do
164
178
  end
165
179
 
166
180
  context 'unquoted resource title on multi line resource' do
167
- let(:code) { "
168
- file { foo:
169
- }"
170
- }
171
- let(:fixed) { "
172
- file { 'foo':
173
- }"
174
- }
181
+ let(:code) do
182
+ <<-END
183
+ file { foo:
184
+ }
185
+ END
186
+ end
187
+
188
+ let(:fixed) do
189
+ <<-END
190
+ file { 'foo':
191
+ }
192
+ END
193
+ end
175
194
 
176
195
  it 'should only detect a single problem' do
177
196
  expect(problems).to have(1).problem
178
197
  end
179
198
 
180
199
  it 'should fix the manifest' do
181
- expect(problems).to contain_fixed(msg).on_line(2).in_column(16)
200
+ expect(problems).to contain_fixed(msg).on_line(1).in_column(18)
182
201
  end
183
202
 
184
203
  it 'should single quote the resource title' do
@@ -187,25 +206,30 @@ describe 'unquoted_resource_title' do
187
206
  end
188
207
 
189
208
  context 'condensed resources with an unquoted title' do
190
- let(:code) { "
191
- file {
192
- 'foo': ;
193
- bar: ;
194
- }"
195
- }
196
- let(:fixed) { "
197
- file {
198
- 'foo': ;
199
- 'bar': ;
200
- }"
201
- }
209
+ let(:code) do
210
+ <<-END
211
+ file {
212
+ 'foo': ;
213
+ bar: ;
214
+ }
215
+ END
216
+ end
217
+
218
+ let(:fixed) do
219
+ <<-END
220
+ file {
221
+ 'foo': ;
222
+ 'bar': ;
223
+ }
224
+ END
225
+ end
202
226
 
203
227
  it 'should only detect a single problem' do
204
228
  expect(problems).to have(1).problem
205
229
  end
206
230
 
207
231
  it 'should fix the manifest' do
208
- expect(problems).to contain_fixed(msg).on_line(4).in_column(11)
232
+ expect(problems).to contain_fixed(msg).on_line(3).in_column(13)
209
233
  end
210
234
 
211
235
  it 'should single quote the resource title' do