Skip to content

Commit

Permalink
Use prettier for JavaScript snapshots (#2797)
Browse files Browse the repository at this point in the history
  • Loading branch information
ForbesLindesay authored May 6, 2017
1 parent 897c777 commit ce24764
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 14 deletions.
12 changes: 8 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
"devDependencies": {
"coveralls": "^2.11.2",
"jest": "^18.1.0",
"lerna": "2.0.0-beta.32"
"lerna": "2.0.0-beta.32",
"prettier": "^1.3.1"
},
"repository": {
"type": "git",
"url": "https://github.com/pugjs/pug.git"
"type": "git",
"url": "https://github.com/pugjs/pug.git"
},
"scripts": {
"clean": "lerna clean",
Expand All @@ -22,7 +23,10 @@
},
"jest": {
"testEnvironment": "node",
"snapshotSerializers": ["./scripts/filename-serializer.js"]
"snapshotSerializers": [
"./scripts/filename-serializer.js",
"./scripts/prettier-javascript-serializer.js"
]
},
"license": "MIT"
}
98 changes: 88 additions & 10 deletions packages/pug/test/__snapshots__/pug.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,15 +1,93 @@
exports[`pug .compileClient() should support module syntax in pug.compileClient(str, options) when inlineRuntimeFunctions it false 1`] = `
"var pug = require(\"pug-runtime\");function template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var self = locals || {};;pug_debug_line = 1;
pug_html = pug_html + \"\\u003Cdiv class=\\\"bar\\\"\\u003E\";
;pug_debug_line = 1;
pug_html = pug_html + (pug.escape(null == (pug_interp = self.foo) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line);};return pug_html;} module.exports = template;"
"var pug = require(\"pug-runtime\");
function template(locals) {
var pug_html = \"\", pug_mixins = {}, pug_interp;
var pug_debug_filename, pug_debug_line;
try {
var self = locals || {};
pug_debug_line = 1;
pug_html = pug_html + \'\\u003Cdiv class=\"bar\"\\u003E\';
pug_debug_line = 1;
pug_html =
pug_html +
pug.escape(null == (pug_interp = self.foo) ? \"\" : pug_interp) +
\"\\u003C\\u002Fdiv\\u003E\";
} catch (err) {
pug.rethrow(err, pug_debug_filename, pug_debug_line);
}
return pug_html;
}
module.exports = template;
"
`;
exports[`pug .compileClient() should support module syntax in pug.compileClient(str, options) when inlineRuntimeFunctions it true 1`] = `
"function pug_escape(e){var a=\"\"+e,t=pug_match_html.exec(a);if(!t)return e;var r,c,n,s=\"\";for(r=t.index,c=0;r<a.length;r++){switch(a.charCodeAt(r)){case 34:n=\"&quot;\";break;case 38:n=\"&amp;\";break;case 60:n=\"&lt;\";break;case 62:n=\"&gt;\";break;default:continue}c!==r&&(s+=a.substring(c,r)),c=r+1,s+=n}return c!==r?s+a.substring(c,r):s}
var pug_match_html=/[\"&<>]/;
function pug_rethrow(n,e,r,t){if(!(n instanceof Error))throw n;if(!(\"undefined\"==typeof window&&e||t))throw n.message+=\" on line \"+r,n;try{t=t||require(\"fs\").readFileSync(e,\"utf8\")}catch(e){pug_rethrow(n,null,r)}var i=3,a=t.split(\"\\n\"),o=Math.max(r-i,0),h=Math.min(a.length,r+i),i=a.slice(o,h).map(function(n,e){var t=e+o+1;return(t==r?\" > \":\" \")+t+\"| \"+n}).join(\"\\n\");throw n.path=e,n.message=(e||\"Pug\")+\":\"+r+\"\\n\"+i+\"\\n\\n\"+n.message,n}function template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var self = locals || {};;pug_debug_line = 1;
pug_html = pug_html + \"\\u003Cdiv class=\\\"bar\\\"\\u003E\";
;pug_debug_line = 1;
pug_html = pug_html + (pug_escape(null == (pug_interp = self.foo) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";} catch (err) {pug_rethrow(err, pug_debug_filename, pug_debug_line);};return pug_html;} module.exports = template;"
"function pug_escape(e) {
var a = \"\" + e, t = pug_match_html.exec(a);
if (!t) return e;
var r, c, n, s = \"\";
for ((r = t.index), (c = 0); r < a.length; r++) {
switch (a.charCodeAt(r)) {
case 34:
n = \"&quot;\";
break;
case 38:
n = \"&amp;\";
break;
case 60:
n = \"&lt;\";
break;
case 62:
n = \"&gt;\";
break;
default:
continue;
}
c !== r && (s += a.substring(c, r)), (c = r + 1), (s += n);
}
return c !== r ? s + a.substring(c, r) : s;
}
var pug_match_html = /[\"&<>]/;
function pug_rethrow(n, e, r, t) {
if (!(n instanceof Error)) throw n;
if (!((\"undefined\" == typeof window && e) || t))
throw ((n.message += \" on line \" + r), n);
try {
t = t || require(\"fs\").readFileSync(e, \"utf8\");
} catch (e) {
pug_rethrow(n, null, r);
}
var i = 3,
a = t.split(\"\\n\"),
o = Math.max(r - i, 0),
h = Math.min(a.length, r + i),
i = a
.slice(o, h)
.map(function(n, e) {
var t = e + o + 1;
return (t == r ? \" > \" : \" \") + t + \"| \" + n;
})
.join(\"\\n\");
throw ((n.path = e), (n.message =
(e || \"Pug\") + \":\" + r + \"\\n\" + i + \"\\n\\n\" + n.message), n);
}
function template(locals) {
var pug_html = \"\", pug_mixins = {}, pug_interp;
var pug_debug_filename, pug_debug_line;
try {
var self = locals || {};
pug_debug_line = 1;
pug_html = pug_html + \'\\u003Cdiv class=\"bar\"\\u003E\';
pug_debug_line = 1;
pug_html =
pug_html +
pug_escape(null == (pug_interp = self.foo) ? \"\" : pug_interp) +
\"\\u003C\\u002Fdiv\\u003E\";
} catch (err) {
pug_rethrow(err, pug_debug_filename, pug_debug_line);
}
return pug_html;
}
module.exports = template;
"
`;
21 changes: 21 additions & 0 deletions scripts/prettier-javascript-serializer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
const prettier = require('prettier');

const prettierOptions = {} // optional

// filename serializer that removes the basedir
module.exports = {
test: function(val) {
try {
return (
typeof val === 'string' &&
/function /.test(val) &&
val !== prettier.format(val, prettierOptions)
);
} catch (ex) {
return false;
}
},
print: function(val, serialize, indent) {
return serialize(prettier.format(val, prettierOptions));
}
};

0 comments on commit ce24764

Please sign in to comment.