From 12441eb2dda9fb82e3d82ecce0a74b4497312ab7 Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Sat, 20 Jan 2018 02:56:28 +0300 Subject: [PATCH] fix: don't add comma after `url` in `@import` directive (#3770) --- src/language-css/printer-postcss.js | 11 ++++- .../__snapshots__/jsfmt.spec.js.snap | 47 +++++++++++++++++++ tests/css_import/url.css | 24 ++++++++++ 3 files changed, 80 insertions(+), 2 deletions(-) diff --git a/src/language-css/printer-postcss.js b/src/language-css/printer-postcss.js index bfd1cd979..baa543301 100644 --- a/src/language-css/printer-postcss.js +++ b/src/language-css/printer-postcss.js @@ -175,10 +175,17 @@ function genericPrint(path, options, print) { } parts.push(childPath.call(print)); }, "nodes"); - return group(indent(join(concat([",", line]), parts))); + + return group(indent(join(line, parts))); } case "media-query": { - return join(" ", path.map(print, "nodes")); + const parent = path.getParentNode(); + const isLastNode = parent.nodes.indexOf(n) === parent.nodes.length - 1; + + return concat([ + join(" ", path.map(print, "nodes")), + isLastNode ? "" : "," + ]); } case "media-type": { const parent = path.getParentNode(2); diff --git a/tests/css_import/__snapshots__/jsfmt.spec.js.snap b/tests/css_import/__snapshots__/jsfmt.spec.js.snap index a349f9496..da4c65ddc 100644 --- a/tests/css_import/__snapshots__/jsfmt.spec.js.snap +++ b/tests/css_import/__snapshots__/jsfmt.spec.js.snap @@ -39,8 +39,55 @@ exports[`nodes.css 1`] = ` exports[`url.css 1`] = ` @import url('foo'); $dir: 'fonts'; + +@import url("foo.css"); +@import url('foo.css'); +@import url("foo.css"); +@import url("foo.css"); +@import url("fineprint.css")print; +@import url("fineprint.css") print; +@import url("fineprint.css") print; +@import url("fineprint.css") + print; +@import url("bluish.css") projection,tv; +@import url("bluish.css") projection, tv; +@import url("bluish.css") projection ,tv; +@import url("bluish.css") projection , tv; +@import url("bluish.css") projection , tv; +@import url("bluish.css") + projection, + tv; +@import url("very-very-very-very-very-very-very-very-very-very-long-name.css") projection,tv; +@import url('landscape.css') screen and (orientation:landscape); +@import "rounded-corners", "text-shadow"; +@import 'rounded-corners', 'text-shadow'; +$family: unquote("Droid+Sans"); +@import url("http://fonts.googleapis.com/css?family=#{$family}"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @import url("foo"); $dir: "fonts"; +@import url("foo.css"); +@import url("foo.css"); +@import url("foo.css"); +@import url("foo.css"); +@import url("fineprint.css") print; +@import url("fineprint.css") print; +@import url("fineprint.css") print; +@import url("fineprint.css") print; +@import url("bluish.css") projection, tv; +@import url("bluish.css") projection, tv; +@import url("bluish.css") projection, tv; +@import url("bluish.css") projection, tv; +@import url("bluish.css") projection, tv; +@import url("bluish.css") projection, tv; +@import url("very-very-very-very-very-very-very-very-very-very-long-name.css") + projection, + tv; +@import url("landscape.css") screen and (orientation: landscape); +@import "rounded-corners", "text-shadow"; +@import "rounded-corners", "text-shadow"; +$family: unquote("Droid+Sans"); +@import url("http://fonts.googleapis.com/css?family=#{$family}"); + `; diff --git a/tests/css_import/url.css b/tests/css_import/url.css index e91b68d70..4f9ac04fd 100644 --- a/tests/css_import/url.css +++ b/tests/css_import/url.css @@ -1,2 +1,26 @@ @import url('foo'); $dir: 'fonts'; + +@import url("foo.css"); +@import url('foo.css'); +@import url("foo.css"); +@import url("foo.css"); +@import url("fineprint.css")print; +@import url("fineprint.css") print; +@import url("fineprint.css") print; +@import url("fineprint.css") + print; +@import url("bluish.css") projection,tv; +@import url("bluish.css") projection, tv; +@import url("bluish.css") projection ,tv; +@import url("bluish.css") projection , tv; +@import url("bluish.css") projection , tv; +@import url("bluish.css") + projection, + tv; +@import url("very-very-very-very-very-very-very-very-very-very-long-name.css") projection,tv; +@import url('landscape.css') screen and (orientation:landscape); +@import "rounded-corners", "text-shadow"; +@import 'rounded-corners', 'text-shadow'; +$family: unquote("Droid+Sans"); +@import url("http://fonts.googleapis.com/css?family=#{$family}");