From 5af1d1295f9bd33d35a7009ca0a8500f1f7e1261 Mon Sep 17 00:00:00 2001 From: Jakub Pawlowicz Date: Mon, 24 Aug 2015 05:36:18 +0100 Subject: [PATCH] Refixes #648 - apply at-rule support. We were not trimming the token before checking for @ character so only rules without whitespace were working fine. --- lib/tokenizer/extract-properties.js | 2 +- test/integration-test.js | 4 ++++ test/tokenizer/tokenizer-test.js | 10 ++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/tokenizer/extract-properties.js b/lib/tokenizer/extract-properties.js index 83d90055..25484493 100644 --- a/lib/tokenizer/extract-properties.js +++ b/lib/tokenizer/extract-properties.js @@ -63,7 +63,7 @@ function extractProperties(string, selectors, context) { var candidate = candidates[i]; var firstColonAt = candidate.indexOf(':'); - var atRule = candidate[0] == '@'; + var atRule = candidate.trim()[0] == '@'; if (atRule) { context.track(candidate); list.push([AT_RULE, candidate.trim()]); diff --git a/test/integration-test.js b/test/integration-test.js index 0e3d6051..7212901b 100644 --- a/test/integration-test.js +++ b/test/integration-test.js @@ -2167,6 +2167,10 @@ vows.describe('integration tests') 'multiple @apply with some styling': [ 'a{@apply(--rule1);@apply(--rule2);color:red;display:block}', 'a{@apply(--rule1);@apply(--rule2);color:red;display:block}' + ], + 'multiple @apply with whitespace': [ + 'a{' + lineBreak + '@apply(--rule1);' + lineBreak + ' @apply(--rule2);' + lineBreak + 'color:red;display:block}', + 'a{@apply(--rule1);@apply(--rule2);color:red;display:block}' ] }) ) diff --git a/test/tokenizer/tokenizer-test.js b/test/tokenizer/tokenizer-test.js index 1ae28632..ca44bc03 100644 --- a/test/tokenizer/tokenizer-test.js +++ b/test/tokenizer/tokenizer-test.js @@ -180,6 +180,16 @@ vows.describe(tokenize) ] ] ], + '@apply with whitespace': [ + 'a{ @apply(--rule); }', + [ + [ + 'selector', + [['a']], + [['at-rule', '@apply(--rule)']] + ] + ] + ], 'media query': [ '@media (min-width:980px){}', [ -- 2.34.1