scss-lint 0.25.1 → 0.26.0

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 (77) hide show
  1. checksums.yaml +4 -4
  2. data/config/default.yml +10 -1
  3. data/data/property-sort-orders/concentric.txt +99 -0
  4. data/lib/scss_lint.rb +1 -0
  5. data/lib/scss_lint/cli.rb +9 -3
  6. data/lib/scss_lint/exceptions.rb +4 -0
  7. data/lib/scss_lint/linter.rb +10 -1
  8. data/lib/scss_lint/linter/capitalization_in_selector.rb +14 -6
  9. data/lib/scss_lint/linter/compass/property_with_mixin.rb +9 -2
  10. data/lib/scss_lint/linter/indentation.rb +28 -6
  11. data/lib/scss_lint/linter/property_sort_order.rb +61 -9
  12. data/lib/scss_lint/linter/single_line_per_property.rb +53 -0
  13. data/lib/scss_lint/linter/single_line_per_selector.rb +6 -1
  14. data/lib/scss_lint/linter/space_after_comma.rb +27 -19
  15. data/lib/scss_lint/linter/space_before_brace.rb +5 -4
  16. data/lib/scss_lint/linter/trailing_semicolon.rb +53 -0
  17. data/lib/scss_lint/linter/unnecessary_parent_reference.rb +36 -0
  18. data/lib/scss_lint/reporter/default_reporter.rb +7 -2
  19. data/lib/scss_lint/reporter/xml_reporter.rb +2 -1
  20. data/lib/scss_lint/runner.rb +7 -3
  21. data/lib/scss_lint/version.rb +1 -1
  22. data/spec/scss_lint/cli_spec.rb +314 -0
  23. data/spec/scss_lint/config_spec.rb +439 -0
  24. data/spec/scss_lint/engine_spec.rb +24 -0
  25. data/spec/scss_lint/linter/border_zero_spec.rb +84 -0
  26. data/spec/scss_lint/linter/capitalization_in_selector_spec.rb +71 -0
  27. data/spec/scss_lint/linter/color_keyword_spec.rb +83 -0
  28. data/spec/scss_lint/linter/comment_spec.rb +55 -0
  29. data/spec/scss_lint/linter/compass/property_with_mixin_spec.rb +55 -0
  30. data/spec/scss_lint/linter/debug_statement_spec.rb +21 -0
  31. data/spec/scss_lint/linter/declaration_order_spec.rb +94 -0
  32. data/spec/scss_lint/linter/duplicate_property_spec.rb +176 -0
  33. data/spec/scss_lint/linter/else_placement_spec.rb +106 -0
  34. data/spec/scss_lint/linter/empty_line_between_blocks_spec.rb +263 -0
  35. data/spec/scss_lint/linter/empty_rule_spec.rb +27 -0
  36. data/spec/scss_lint/linter/final_newline_spec.rb +49 -0
  37. data/spec/scss_lint/linter/hex_length_spec.rb +104 -0
  38. data/spec/scss_lint/linter/hex_notation_spec.rb +104 -0
  39. data/spec/scss_lint/linter/hex_validation_spec.rb +36 -0
  40. data/spec/scss_lint/linter/id_with_extraneous_selector_spec.rb +139 -0
  41. data/spec/scss_lint/linter/indentation_spec.rb +242 -0
  42. data/spec/scss_lint/linter/leading_zero_spec.rb +233 -0
  43. data/spec/scss_lint/linter/mergeable_selector_spec.rb +283 -0
  44. data/spec/scss_lint/linter/name_format_spec.rb +206 -0
  45. data/spec/scss_lint/linter/placeholder_in_extend_spec.rb +63 -0
  46. data/spec/scss_lint/linter/property_sort_order_spec.rb +246 -0
  47. data/spec/scss_lint/linter/property_spelling_spec.rb +57 -0
  48. data/spec/scss_lint/linter/selector_depth_spec.rb +159 -0
  49. data/spec/scss_lint/linter/shorthand_spec.rb +172 -0
  50. data/spec/scss_lint/linter/single_line_per_property_spec.rb +73 -0
  51. data/spec/scss_lint/linter/single_line_per_selector_spec.rb +121 -0
  52. data/spec/scss_lint/linter/space_after_comma_spec.rb +315 -0
  53. data/spec/scss_lint/linter/space_after_property_colon_spec.rb +238 -0
  54. data/spec/scss_lint/linter/space_after_property_name_spec.rb +23 -0
  55. data/spec/scss_lint/linter/space_before_brace_spec.rb +447 -0
  56. data/spec/scss_lint/linter/space_between_parens_spec.rb +263 -0
  57. data/spec/scss_lint/linter/string_quotes_spec.rb +303 -0
  58. data/spec/scss_lint/linter/trailing_semicolon_spec.rb +188 -0
  59. data/spec/scss_lint/linter/unnecessary_mantissa_spec.rb +67 -0
  60. data/spec/scss_lint/linter/unnecessary_parent_reference_spec.rb +67 -0
  61. data/spec/scss_lint/linter/url_format_spec.rb +55 -0
  62. data/spec/scss_lint/linter/url_quotes_spec.rb +63 -0
  63. data/spec/scss_lint/linter/zero_unit_spec.rb +113 -0
  64. data/spec/scss_lint/linter_registry_spec.rb +50 -0
  65. data/spec/scss_lint/location_spec.rb +42 -0
  66. data/spec/scss_lint/reporter/config_reporter_spec.rb +42 -0
  67. data/spec/scss_lint/reporter/default_reporter_spec.rb +73 -0
  68. data/spec/scss_lint/reporter/files_reporter_spec.rb +38 -0
  69. data/spec/scss_lint/reporter/xml_reporter_spec.rb +103 -0
  70. data/spec/scss_lint/reporter_spec.rb +11 -0
  71. data/spec/scss_lint/runner_spec.rb +132 -0
  72. data/spec/scss_lint/selector_visitor_spec.rb +264 -0
  73. data/spec/spec_helper.rb +34 -0
  74. data/spec/support/isolated_environment.rb +25 -0
  75. data/spec/support/matchers/report_lint.rb +48 -0
  76. metadata +126 -8
  77. data/lib/scss_lint/linter/trailing_semicolon_after_property_value.rb +0 -40
@@ -0,0 +1,238 @@
1
+ require 'spec_helper'
2
+
3
+ describe SCSSLint::Linter::SpaceAfterPropertyColon do
4
+ let(:linter_config) { { 'style' => style } }
5
+
6
+ context 'when one space is preferred' do
7
+ let(:style) { 'one_space' }
8
+
9
+ context 'when the colon after a property is not followed by space' do
10
+ let(:css) { <<-CSS }
11
+ p {
12
+ margin:0;
13
+ }
14
+ CSS
15
+
16
+ it { should report_lint line: 2 }
17
+ end
18
+
19
+ context 'when colon after property is not followed by space and the semicolon is missing' do
20
+ let(:css) { <<-CSS }
21
+ p {
22
+ color:#eee
23
+ }
24
+ CSS
25
+
26
+ it { should report_lint line: 2 }
27
+ end
28
+
29
+ context 'when the colon after a property is followed by a space' do
30
+ let(:css) { <<-CSS }
31
+ p {
32
+ margin: 0;
33
+ }
34
+ CSS
35
+
36
+ it { should_not report_lint }
37
+ end
38
+
39
+ context 'when the colon after a property is surrounded by spaces' do
40
+ let(:css) { <<-CSS }
41
+ p {
42
+ margin : bold;
43
+ }
44
+ CSS
45
+
46
+ it { should_not report_lint }
47
+ end
48
+
49
+ context 'when the colon after a property is followed by multiple spaces' do
50
+ let(:css) { <<-CSS }
51
+ p {
52
+ margin: bold;
53
+ }
54
+ CSS
55
+
56
+ it { should report_lint line: 2 }
57
+ end
58
+ end
59
+
60
+ context 'when no spaces are allowed' do
61
+ let(:style) { 'no_space' }
62
+
63
+ context 'when the colon after a property is not followed by space' do
64
+ let(:css) { <<-CSS }
65
+ p {
66
+ margin:0;
67
+ }
68
+ CSS
69
+
70
+ it { should_not report_lint }
71
+ end
72
+
73
+ context 'when colon after property is not followed by space and the semicolon is missing' do
74
+ let(:css) { <<-CSS }
75
+ p {
76
+ color:#eee
77
+ }
78
+ CSS
79
+
80
+ it { should_not report_lint }
81
+ end
82
+
83
+ context 'when the colon after a property is followed by a space' do
84
+ let(:css) { <<-CSS }
85
+ p {
86
+ margin: 0;
87
+ }
88
+ CSS
89
+
90
+ it { should report_lint line: 2 }
91
+ end
92
+
93
+ context 'when the colon after a property is surrounded by spaces' do
94
+ let(:css) { <<-CSS }
95
+ p {
96
+ margin : bold;
97
+ }
98
+ CSS
99
+
100
+ it { should report_lint line: 2 }
101
+ end
102
+
103
+ context 'when the colon after a property is followed by multiple spaces' do
104
+ let(:css) { <<-CSS }
105
+ p {
106
+ margin: bold;
107
+ }
108
+ CSS
109
+
110
+ it { should report_lint line: 2 }
111
+ end
112
+ end
113
+
114
+ context 'when at least one space is preferred' do
115
+ let(:style) { 'at_least_one_space' }
116
+
117
+ context 'when the colon after a property is not followed by space' do
118
+ let(:css) { <<-CSS }
119
+ p {
120
+ margin:0;
121
+ }
122
+ CSS
123
+
124
+ it { should report_lint line: 2 }
125
+ end
126
+
127
+ context 'when colon after property is not followed by space and the semicolon is missing' do
128
+ let(:css) { <<-CSS }
129
+ p {
130
+ color:#eee
131
+ }
132
+ CSS
133
+
134
+ it { should report_lint line: 2 }
135
+ end
136
+
137
+ context 'when the colon after a property is followed by a space' do
138
+ let(:css) { <<-CSS }
139
+ p {
140
+ margin: 0;
141
+ }
142
+ CSS
143
+
144
+ it { should_not report_lint }
145
+ end
146
+
147
+ context 'when the colon after a property is surrounded by spaces' do
148
+ let(:css) { <<-CSS }
149
+ p {
150
+ margin : bold;
151
+ }
152
+ CSS
153
+
154
+ it { should_not report_lint }
155
+ end
156
+
157
+ context 'when the colon after a property is followed by multiple spaces' do
158
+ let(:css) { <<-CSS }
159
+ p {
160
+ margin: bold;
161
+ }
162
+ CSS
163
+
164
+ it { should_not report_lint }
165
+ end
166
+ end
167
+
168
+ context 'when aligned property values are preferred' do
169
+ let(:style) { 'aligned' }
170
+
171
+ context 'when the colon after a single property is not followed by space' do
172
+ let(:css) { <<-CSS }
173
+ p {
174
+ margin:0;
175
+ }
176
+ CSS
177
+
178
+ it { should_not report_lint }
179
+ end
180
+
181
+ context 'when the colon after a single property is followed by a space' do
182
+ let(:css) { <<-CSS }
183
+ p {
184
+ margin: 0;
185
+ }
186
+ CSS
187
+
188
+ it { should_not report_lint }
189
+ end
190
+
191
+ context 'when properties are not aligned' do
192
+ let(:css) { <<-CSS }
193
+ p {
194
+ content: 'hello';
195
+ margin: 0;
196
+ padding: 0;
197
+ }
198
+ CSS
199
+
200
+ it { should report_lint line: 2 }
201
+ end
202
+
203
+ context 'when properties aligned but the names are not' do
204
+ let(:css) { <<-CSS }
205
+ p {
206
+ content: 'hello';
207
+ margin: 0;
208
+ padding: 0;
209
+ }
210
+ CSS
211
+
212
+ it { should_not report_lint }
213
+ end
214
+
215
+ context 'when properties aligned but the names with spaces are not' do
216
+ let(:css) { <<-CSS }
217
+ p {
218
+ content : 'hello';
219
+ margin : 0;
220
+ padding : 0;
221
+ }
222
+ CSS
223
+
224
+ it { should_not report_lint }
225
+ end
226
+
227
+ context 'when properties are aligned' do
228
+ let(:css) { <<-CSS }
229
+ p {
230
+ margin: 0;
231
+ padding: 0;
232
+ }
233
+ CSS
234
+
235
+ it { should_not report_lint }
236
+ end
237
+ end
238
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe SCSSLint::Linter::SpaceAfterPropertyName do
4
+ context 'when a property name is followed by a space' do
5
+ let(:css) { <<-CSS }
6
+ p {
7
+ margin : 0;
8
+ }
9
+ CSS
10
+
11
+ it { should report_lint line: 2 }
12
+ end
13
+
14
+ context 'when a property name is not followed by a space' do
15
+ let(:css) { <<-CSS }
16
+ p {
17
+ margin: 0;
18
+ }
19
+ CSS
20
+
21
+ it { should_not report_lint }
22
+ end
23
+ end
@@ -0,0 +1,447 @@
1
+ require 'spec_helper'
2
+
3
+ describe SCSSLint::Linter::SpaceBeforeBrace do
4
+ context 'with a @at-root block' do
5
+ context 'when brace is preceded by a space' do
6
+ let(:css) { <<-CSS }
7
+ .parent {
8
+ @at-root .child {
9
+ }
10
+ }
11
+ CSS
12
+
13
+ it { should_not report_lint }
14
+ end
15
+
16
+ context 'when brace is preceded by multiple spaces' do
17
+ let(:css) { <<-CSS }
18
+ .parent {
19
+ @at-root .child {
20
+ }
21
+ }
22
+ CSS
23
+
24
+ it { should report_lint line: 2 }
25
+ end
26
+
27
+ context 'when brace is not preceded by a space' do
28
+ let(:css) { <<-CSS }
29
+ .parent {
30
+ @at-root .child{
31
+ }
32
+ }
33
+ CSS
34
+
35
+ it { should report_lint line: 2 }
36
+ end
37
+ end
38
+
39
+ context 'with an @each block' do
40
+ context 'when brace is preceded by a space' do
41
+ let(:css) { <<-CSS }
42
+ @each $item in $list {
43
+ }
44
+ CSS
45
+
46
+ it { should_not report_lint }
47
+ end
48
+
49
+ context 'when brace is preceded by multiple spaces' do
50
+ let(:css) { <<-CSS }
51
+ @each $item in $list {
52
+ }
53
+ CSS
54
+
55
+ it { should report_lint line: 1 }
56
+ end
57
+
58
+ context 'when brace is not preceded by a space' do
59
+ let(:css) { <<-CSS }
60
+ @each $item in $list{
61
+ }
62
+ CSS
63
+
64
+ it { should report_lint line: 1 }
65
+ end
66
+ end
67
+
68
+ context 'with a @for block' do
69
+ context 'when brace is preceded by a space' do
70
+ let(:css) { <<-CSS }
71
+ @for $i from $start to $end {
72
+ }
73
+ CSS
74
+
75
+ it { should_not report_lint }
76
+ end
77
+
78
+ context 'when brace is preceded by multiple spaces' do
79
+ let(:css) { <<-CSS }
80
+ @for $i from $start to $end {
81
+ }
82
+ CSS
83
+
84
+ it { should report_lint line: 1 }
85
+ end
86
+
87
+ context 'when brace is not preceded by a space' do
88
+ let(:css) { <<-CSS }
89
+ @for $i from $start to $end{
90
+ }
91
+ CSS
92
+
93
+ it { should report_lint line: 1 }
94
+ end
95
+ end
96
+
97
+ context 'with a @while block' do
98
+ context 'when brace is preceded by a space' do
99
+ let(:css) { <<-CSS }
100
+ @while $condition {
101
+ }
102
+ CSS
103
+
104
+ it { should_not report_lint }
105
+ end
106
+
107
+ context 'when brace is preceded by multiple spaces' do
108
+ let(:css) { <<-CSS }
109
+ @while $condition {
110
+ }
111
+ CSS
112
+
113
+ it { should report_lint line: 1 }
114
+ end
115
+
116
+ context 'when brace is not preceded by a space' do
117
+ let(:css) { <<-CSS }
118
+ @while $condition{
119
+ }
120
+ CSS
121
+
122
+ it { should report_lint line: 1 }
123
+ end
124
+ end
125
+
126
+ context 'with a rule selector' do
127
+ context 'when brace is preceded by a space' do
128
+ let(:css) { <<-CSS }
129
+ p {
130
+ }
131
+ CSS
132
+
133
+ it { should_not report_lint }
134
+ end
135
+
136
+ context 'when brace is preceded by multiple spaces' do
137
+ let(:css) { <<-CSS }
138
+ p {
139
+ }
140
+ CSS
141
+
142
+ it { should report_lint line: 1 }
143
+ end
144
+
145
+ context 'when brace is not preceded by a space' do
146
+ let(:css) { <<-CSS }
147
+ p{
148
+ }
149
+ CSS
150
+
151
+ it { should report_lint line: 1 }
152
+ end
153
+
154
+ context 'when brace is in a single line rule set' do
155
+ let(:css) { <<-CSS }
156
+ .single-line-selector{color: #f00;}
157
+ CSS
158
+
159
+ it { should report_lint line: 1 }
160
+ end
161
+
162
+ context 'when brace is following a multi-selector rule set' do
163
+ let(:css) { <<-CSS }
164
+ .selector1,
165
+ .selector2,
166
+ .selector3{
167
+ }
168
+ CSS
169
+
170
+ it { should report_lint line: 3 }
171
+ end
172
+ end
173
+
174
+ context 'with a function declaration' do
175
+ context 'with arguments' do
176
+ context 'when brace is preceded by a space' do
177
+ let(:css) { <<-CSS }
178
+ @function func($arg, $arg2) {
179
+ }
180
+ CSS
181
+
182
+ it { should_not report_lint }
183
+ end
184
+
185
+ context 'when brace is preceded by multiple spaces' do
186
+ let(:css) { <<-CSS }
187
+ @function func($arg, $arg2) {
188
+ }
189
+ CSS
190
+
191
+ it { should report_lint line: 1 }
192
+ end
193
+
194
+ context 'when brace is not preceded by a space' do
195
+ let(:css) { <<-CSS }
196
+ @function func($arg, $arg2){
197
+ }
198
+ CSS
199
+
200
+ it { should report_lint line: 1 }
201
+ end
202
+ end
203
+
204
+ context 'without arguments' do
205
+ context 'when brace is preceded by a space' do
206
+ let(:css) { <<-CSS }
207
+ @function func() {
208
+ }
209
+ CSS
210
+
211
+ it { should_not report_lint }
212
+ end
213
+
214
+ context 'when brace is preceded by multiple spaces' do
215
+ let(:css) { <<-CSS }
216
+ @function func() {
217
+ }
218
+ CSS
219
+
220
+ it { should report_lint line: 1 }
221
+ end
222
+
223
+ context 'when brace is not preceded by a space' do
224
+ let(:css) { <<-CSS }
225
+ @function func(){
226
+ }
227
+ CSS
228
+
229
+ it { should report_lint line: 1 }
230
+ end
231
+ end
232
+ end
233
+
234
+ context 'with a mixin declaration' do
235
+ context 'with arguments' do
236
+ context 'when brace is preceded by a space' do
237
+ let(:css) { <<-CSS }
238
+ @mixin mixin($arg, $arg2) {
239
+ }
240
+ CSS
241
+
242
+ it { should_not report_lint }
243
+ end
244
+
245
+ context 'when brace is preceded by multiple spaces' do
246
+ let(:css) { <<-CSS }
247
+ @mixin mixin($arg, $arg2) {
248
+ }
249
+ CSS
250
+
251
+ it { should report_lint line: 1 }
252
+ end
253
+
254
+ context 'when brace is not preceded by a space' do
255
+ let(:css) { <<-CSS }
256
+ @mixin mixin($arg, $arg2){
257
+ }
258
+ CSS
259
+
260
+ it { should report_lint line: 1 }
261
+ end
262
+ end
263
+
264
+ context 'without arguments' do
265
+ context 'when brace is preceded by a space' do
266
+ let(:css) { <<-CSS }
267
+ @mixin mixin {
268
+ }
269
+ CSS
270
+
271
+ it { should_not report_lint }
272
+ end
273
+
274
+ context 'when brace is preceded by multiple spaces' do
275
+ let(:css) { <<-CSS }
276
+ @mixin mixin {
277
+ }
278
+ CSS
279
+
280
+ it { should report_lint line: 1 }
281
+ end
282
+
283
+ context 'when brace is not preceded by a space' do
284
+ let(:css) { <<-CSS }
285
+ @mixin mixin{
286
+ }
287
+ CSS
288
+
289
+ it { should report_lint line: 1 }
290
+ end
291
+ end
292
+ end
293
+
294
+ context 'with a mixin include with braces' do
295
+ context 'with arguments' do
296
+ context 'when brace is preceded by a space' do
297
+ let(:css) { <<-CSS }
298
+ @include mixin(arg, arg2) {
299
+ }
300
+ CSS
301
+
302
+ it { should_not report_lint }
303
+ end
304
+
305
+ context 'when brace is preceded by multiple spaces' do
306
+ let(:css) { <<-CSS }
307
+ @include mixin(arg, arg2) {
308
+ }
309
+ CSS
310
+
311
+ it { should report_lint line: 1 }
312
+ end
313
+
314
+ context 'when brace is not preceded by a space' do
315
+ let(:css) { <<-CSS }
316
+ @include mixin(arg, arg2){
317
+ }
318
+ CSS
319
+
320
+ it { should report_lint line: 1 }
321
+ end
322
+ end
323
+
324
+ context 'without arguments' do
325
+ context 'when brace is preceded by a space' do
326
+ let(:css) { <<-CSS }
327
+ @include mixin {
328
+ }
329
+ CSS
330
+
331
+ it { should_not report_lint }
332
+ end
333
+
334
+ context 'when brace is preceded by multiple spaces' do
335
+ let(:css) { <<-CSS }
336
+ @include mixin {
337
+ }
338
+ CSS
339
+
340
+ it { should report_lint line: 1 }
341
+ end
342
+
343
+ context 'when brace is not preceded by a space' do
344
+ let(:css) { <<-CSS }
345
+ @include mixin{
346
+ }
347
+ CSS
348
+
349
+ it { should report_lint line: 1 }
350
+ end
351
+ end
352
+ end
353
+
354
+ context 'with a mixin include with no braces' do
355
+ context 'with arguments' do
356
+ let(:css) { <<-CSS }
357
+ @include mixin(arg, arg2);
358
+ CSS
359
+
360
+ it { should_not report_lint }
361
+ end
362
+
363
+ context 'without arguments' do
364
+ let(:css) { <<-CSS }
365
+ @include mixin;
366
+ CSS
367
+
368
+ it { should_not report_lint }
369
+ end
370
+ end
371
+
372
+ context 'when curly brace appears in a string' do
373
+ let(:css) { <<-CSS }
374
+ a {
375
+ content: "{";
376
+ }
377
+ CSS
378
+
379
+ it { should_not report_lint }
380
+ end
381
+
382
+ context 'when using #{} interpolation' do
383
+ let(:css) { <<-CSS }
384
+ @mixin test-mixin($class, $prop, $pixels) {
385
+ .\#{$class} {
386
+ \#{$prop}: \#{$pixels}px;
387
+ }
388
+ }
389
+ CSS
390
+
391
+ it { should_not report_lint }
392
+ end
393
+
394
+ context 'when using braces in comments' do
395
+ let(:css) { '// ({x})' }
396
+
397
+ it { should_not report_lint }
398
+ end
399
+
400
+ context 'when blocks occupy a single line' do
401
+ let(:linter_config) { { 'allow_single_line_padding' => allow_single_line_padding } }
402
+
403
+ let(:css) { <<-CSS }
404
+ p{ }
405
+ p { }
406
+ p { &:before { } }
407
+ p { &:before{ } }
408
+ CSS
409
+
410
+ context 'and the `allow_extra_spaces` option is true' do
411
+ let(:allow_single_line_padding) { true }
412
+
413
+ it { should report_lint line: 1 }
414
+ it { should_not report_lint line: 2 }
415
+ it { should_not report_lint line: 3 }
416
+ it { should report_lint line: 4 }
417
+ end
418
+
419
+ context 'and the `allow_extra_spaces` option is false' do
420
+ let(:allow_single_line_padding) { false }
421
+
422
+ it { should report_lint line: 1 }
423
+ it { should_not report_lint line: 2 }
424
+ it { should report_lint line: 3 }
425
+ it { should report_lint line: 4 }
426
+ end
427
+ end
428
+
429
+ context 'when curly brace is in single quotes' do
430
+ let(:css) { <<-CSS }
431
+ @if $token == '{' {
432
+ }
433
+ CSS
434
+
435
+ it { should_not report_lint }
436
+ end
437
+
438
+ context 'when curly brace is on own line' do
439
+ let(:css) { <<-CSS }
440
+ .class
441
+ {
442
+ }
443
+ CSS
444
+
445
+ it { should_not report_lint }
446
+ end
447
+ end