test normalise with preserve comments

pull/4736/head
tanhauhau 5 years ago
parent 76ef93b438
commit c09bc954d3

@ -4,7 +4,7 @@ import glob from 'tiny-glob/sync';
import * as path from 'path'; import * as path from 'path';
import * as fs from 'fs'; import * as fs from 'fs';
import * as colors from 'kleur'; import * as colors from 'kleur';
export const assert = (assert$1 as unknown) as typeof assert$1 & { htmlEqual: (actual, expected, message?) => void }; export const assert = (assert$1 as unknown) as typeof assert$1 & { htmlEqual: (actual, expected, message?) => void, htmlEqualWithComments: (actual, expected, message?) => void };
// for coverage purposes, we need to test source files, // for coverage purposes, we need to test source files,
// but for sanity purposes, we need to test dist files // but for sanity purposes, we need to test dist files
@ -118,6 +118,9 @@ function cleanChildren(node) {
node.removeChild(child); node.removeChild(child);
child = previous; child = previous;
} }
} else if (child.nodeType === 8) {
// comment
// do nothing
} else { } else {
cleanChildren(child); cleanChildren(child);
} }
@ -137,11 +140,11 @@ function cleanChildren(node) {
} }
} }
export function normalizeHtml(window, html) { export function normalizeHtml(window, html, preserveComments = false) {
try { try {
const node = window.document.createElement('div'); const node = window.document.createElement('div');
node.innerHTML = html node.innerHTML = html
.replace(/<!--.*?-->/g, '') .replace(/(<!--.*?-->)/g, preserveComments ? '$1' : '')
.replace(/>[\s\r\n]+</g, '><') .replace(/>[\s\r\n]+</g, '><')
.trim(); .trim();
cleanChildren(node); cleanChildren(node);
@ -162,6 +165,14 @@ export function setupHtmlEqual() {
message message
); );
}; };
// eslint-disable-next-line no-import-assign
assert.htmlEqualWithComments = (actual, expected, message) => {
assert.deepEqual(
normalizeHtml(window, actual, true),
normalizeHtml(window, expected, true),
message
);
};
} }
export function loadConfig(file) { export function loadConfig(file) {

@ -81,11 +81,9 @@ describe('ssr', () => {
if (css.code) fs.writeFileSync(`${dir}/_actual.css`, css.code); if (css.code) fs.writeFileSync(`${dir}/_actual.css`, css.code);
try { try {
if (compileOptions.preserveComments) { (compileOptions.preserveComments
assert.equal(html.trim(), expectedHtml.trim()); ? assert.htmlEqualWithComments
} else { : assert.htmlEqual)(html, expectedHtml);
assert.htmlEqual(html, expectedHtml);
}
} catch (error) { } catch (error) {
if (shouldUpdateExpected()) { if (shouldUpdateExpected()) {
fs.writeFileSync(`${dir}/_expected.html`, html); fs.writeFileSync(`${dir}/_expected.html`, html);

Loading…
Cancel
Save