remove styling

pull/4886/head
pushkine 5 years ago
parent c358c498ff
commit 70dad6af54

@ -13,7 +13,10 @@ function try_require(file) {
} }
function normalize_warning(warning) { function normalize_warning(warning) {
warning.frame = warning.frame.replace(/^\n/, '').replace(/^\t+/gm, '').replace(/\s+$/gm, ''); warning.frame = warning.frame
.replace(/^\n/, '')
.replace(/^\t+/gm, '')
.replace(/\s+$/gm, '');
delete warning.filename; delete warning.filename;
delete warning.toString; delete warning.toString;
delete warning.start; delete warning.start;
@ -26,7 +29,7 @@ function create(code) {
const fn = new Function('module', 'exports', 'require', code); const fn = new Function('module', 'exports', 'require', code);
const module = { exports: {} }; const module = { exports: {} };
fn(module, module.exports, (id) => { fn(module, module.exports, id => {
if (id === 'svelte') return require('../../index.js'); if (id === 'svelte') return require('../../index.js');
if (id.startsWith('svelte/')) return require(id.replace('svelte', '../../')); if (id.startsWith('svelte/')) return require(id.replace('svelte', '../../'));
@ -41,7 +44,7 @@ describe('css', () => {
setupHtmlEqual(); setupHtmlEqual();
}); });
readdirSync(`${__dirname}/samples`).forEach((dir) => { readdirSync(`${__dirname}/samples`).forEach(dir => {
if (dir[0] === '.') return; if (dir[0] === '.') return;
// add .solo to a sample directory name to only run that test // add .solo to a sample directory name to only run that test
@ -58,9 +61,15 @@ describe('css', () => {
const expected_warnings = (config.warnings || []).map(normalize_warning); const expected_warnings = (config.warnings || []).map(normalize_warning);
const dom = svelte.compile(input, Object.assign(config.compileOptions || {}, { format: 'cjs' })); const dom = svelte.compile(
input,
Object.assign(config.compileOptions || {}, { format: 'cjs' })
);
const ssr = svelte.compile(input, Object.assign(config.compileOptions || {}, { format: 'cjs', generate: 'ssr' })); const ssr = svelte.compile(
input,
Object.assign(config.compileOptions || {}, { format: 'cjs', generate: 'ssr' })
);
assert.equal(dom.css.code, ssr.css.code); assert.equal(dom.css.code, ssr.css.code);
@ -73,10 +82,10 @@ describe('css', () => {
writeFileSync(`${__dirname}/samples/${dir}/_actual.css`, dom.css.code); writeFileSync(`${__dirname}/samples/${dir}/_actual.css`, dom.css.code);
const expected = { const expected = {
html: read(`${__dirname}/samples/${dir}/expected.html`), html: read(`${__dirname}/samples/${dir}/expected.html`),
css: read(`${__dirname}/samples/${dir}/expected.css`), css: read(`${__dirname}/samples/${dir}/expected.css`)
}; };
const actual_css = dom.css.code.replace(/svelte(-ref)?-[a-z0-9]+/g, (m, $1) => ($1 ? m : 'svelte-xyz')); const actual_css = dom.css.code.replace(/svelte(-ref)?-[a-z0-9]+/g, (m, $1) => $1 ? m : 'svelte-xyz');
try { try {
assert.equal(actual_css, expected.css); assert.equal(actual_css, expected.css);
} catch (error) { } catch (error) {
@ -131,9 +140,7 @@ describe('css', () => {
// ssr // ssr
try { try {
const actual_ssr = ServerComponent.render(config.props).html.replace(/svelte(-ref)?-[a-z0-9]+/g, (m, $1) => const actual_ssr = ServerComponent.render(config.props).html.replace(/svelte(-ref)?-[a-z0-9]+/g, (m, $1) => $1 ? m : 'svelte-xyz');
$1 ? m : 'svelte-xyz'
);
assert.htmlEqual(actual_ssr, expected.html); assert.htmlEqual(actual_ssr, expected.html);
} catch (err) { } catch (err) {
console.log(ssr.js.code); console.log(ssr.js.code);

@ -53,7 +53,7 @@ describe('custom-elements', function () {
await browser.close(); await browser.close();
}); });
fs.readdirSync(`${__dirname}/samples`).forEach((dir) => { fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
if (dir[0] === '.') return; if (dir[0] === '.') return;
const solo = /\.solo$/.test(dir); const solo = /\.solo$/.test(dir);
@ -94,9 +94,9 @@ describe('custom-elements', function () {
}, },
}, },
virtual({ virtual({
assert, assert
}), })
], ]
}); });
const result = await bundle.generate({ format: 'iife', name: 'test' }); const result = await bundle.generate({ format: 'iife', name: 'test' });
@ -108,7 +108,7 @@ describe('custom-elements', function () {
console[type](...args); console[type](...args);
}); });
page.on('error', (error) => { page.on('error', error => {
console.log('>>> an error happened'); console.log('>>> an error happened');
console.error(error); console.error(error);
}); });

@ -47,14 +47,14 @@ export function tryToReadFile(file) {
export function cleanRequireCache() { export function cleanRequireCache() {
Object.keys(require.cache) Object.keys(require.cache)
.filter((x) => x.endsWith('.svelte')) .filter(x => x.endsWith('.svelte'))
.forEach((file) => delete require.cache[file]); .forEach(file => delete require.cache[file]);
} }
const virtualConsole = new jsdom.VirtualConsole(); const virtualConsole = new jsdom.VirtualConsole();
virtualConsole.sendTo(console); virtualConsole.sendTo(console);
const { window } = new jsdom.JSDOM('<main></main>', { virtualConsole }); const window = new jsdom.JSDOM('<main></main>', {virtualConsole}).window;
global.document = window.document; global.document = window.document;
global.navigator = window.navigator; global.navigator = window.navigator;
@ -89,11 +89,11 @@ function cleanChildren(node: Element) {
return a.name < b.name ? -1 : 1; return a.name < b.name ? -1 : 1;
}); });
attributes.forEach((attr) => { attributes.forEach(attr => {
node.removeAttribute(attr.name); node.removeAttribute(attr.name);
}); });
attributes.forEach((attr) => { attributes.forEach(attr => {
node.setAttribute(attr.name, attr.value); node.setAttribute(attr.name, attr.value);
}); });
@ -148,8 +148,12 @@ export function normalizeHtml(window, html) {
export function setupHtmlEqual() { export function setupHtmlEqual() {
const window = env(); const window = env();
assert.htmlEqual = function (actual, expected, message) { assert.htmlEqual = (actual, expected, message) => {
assert.deepEqual(normalizeHtml(window, actual), normalizeHtml(window, expected), message); assert.deepEqual(
normalizeHtml(window, actual),
normalizeHtml(window, expected),
message
);
}; };
} }
@ -175,20 +179,24 @@ export function addLineNumbers(code) {
.map((line, i) => { .map((line, i) => {
i = String(i + 1); i = String(i + 1);
while (i.length < 3) i = ` ${i}`; while (i.length < 3) i = ` ${i}`;
return colors.gray(` ${i}: `) + line.replace(/^\t+/, (match) => match.split('\t').join(' '));
return (
colors.gray(` ${i}: `) +
line.replace(/^\t+/, match => match.split('\t').join(' '))
);
}) })
.join('\n'); .join('\n');
} }
export function showOutput(cwd, options = {}, compile = svelte.compile) { export function showOutput(cwd, options = {}, compile = svelte.compile) {
glob('**/*.svelte', { cwd }).forEach((file) => { glob('**/*.svelte', { cwd }).forEach(file => {
if (file[0] === '_') return; if (file[0] === '_') return;
try { try {
const { js } = compile( const { js } = compile(
fs.readFileSync(`${cwd}/${file}`, 'utf-8'), fs.readFileSync(`${cwd}/${file}`, 'utf-8'),
Object.assign(options, { Object.assign(options, {
filename: file, filename: file
}) })
); );
@ -218,13 +226,13 @@ export function useFakeTimers() {
return { return {
flush() { flush() {
callbacks.forEach((fn) => fn()); callbacks.forEach(fn => fn());
callbacks.splice(0, callbacks.length); callbacks.splice(0, callbacks.length);
}, },
removeFakeTimers() { removeFakeTimers() {
callbacks.splice(0, callbacks.length); callbacks.splice(0, callbacks.length);
global.setTimeout = original_set_timeout; global.setTimeout = original_set_timeout;
}, }
}; };
} }

@ -18,7 +18,7 @@ describe('hydration', () => {
filename, filename,
hydratable: true, hydratable: true,
format: 'cjs', format: 'cjs',
sveltePath, sveltePath
}, },
compileOptions compileOptions
); );
@ -75,7 +75,7 @@ describe('hydration', () => {
const component = new SvelteComponent({ const component = new SvelteComponent({
target, target,
hydrate: true, hydrate: true,
props: config.props, props: config.props
}); });
try { try {
@ -110,19 +110,18 @@ describe('hydration', () => {
} }
} catch (err) { } catch (err) {
showOutput(cwd, { showOutput(cwd, {
hydratable: true, hydratable: true
}); });
throw err; throw err;
} }
if (config.show) if (config.show) showOutput(cwd, {
showOutput(cwd, { hydratable: true
hydratable: true,
}); });
}); });
} }
fs.readdirSync(`${__dirname}/samples`).forEach((dir) => { fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
runTest(dir, null); runTest(dir, null);
}); });
}); });

@ -3,7 +3,7 @@ import { svelte, tryToLoadJson } from '../helpers';
import { assert } from '../test'; import { assert } from '../test';
describe('parser', () => { describe('parser', () => {
fs.readdirSync(`${__dirname}/samples`).forEach((dir) => { fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
if (dir[0] === '.') return; if (dir[0] === '.') return;
// add .solo to a sample directory name to only run that test // add .solo to a sample directory name to only run that test
@ -23,12 +23,9 @@ describe('parser', () => {
const expectedError = tryToLoadJson(`${__dirname}/samples/${dir}/error.json`); const expectedError = tryToLoadJson(`${__dirname}/samples/${dir}/error.json`);
try { try {
const { ast } = svelte.compile( const { ast } = svelte.compile(input, Object.assign(options, {
input, generate: false
Object.assign(options, { }));
generate: false,
})
);
fs.writeFileSync(`${__dirname}/samples/${dir}/_actual.json`, JSON.stringify(ast, null, '\t')); fs.writeFileSync(`${__dirname}/samples/${dir}/_actual.json`, JSON.stringify(ast, null, '\t'));

@ -1,5 +1,5 @@
import * as fs from 'fs'; import * as fs from "fs";
import * as path from 'path'; import * as path from "path";
import { import {
showOutput, showOutput,
@ -10,31 +10,31 @@ import {
cleanRequireCache, cleanRequireCache,
shouldUpdateExpected, shouldUpdateExpected,
mkdirp, mkdirp,
} from '../helpers'; } from "../helpers";
import { glob } from '../tiny-glob'; import { glob } from "../tiny-glob";
import { assert } from '../test'; import { assert } from "../test";
function tryToReadFile(file) { function tryToReadFile(file) {
try { try {
return fs.readFileSync(file, 'utf-8'); return fs.readFileSync(file, "utf-8");
} catch (err) { } catch (err) {
if (err.code !== 'ENOENT') throw err; if (err.code !== "ENOENT") throw err;
return null; return null;
} }
} }
const sveltePath = process.cwd().split('\\').join('/'); const sveltePath = process.cwd().split("\\").join("/");
let compile = null; let compile = null;
describe('ssr', () => { describe("ssr", () => {
before(() => { before(() => {
compile = loadSvelte(true).compile; compile = loadSvelte(true).compile;
return setupHtmlEqual(); return setupHtmlEqual();
}); });
fs.readdirSync(`${__dirname}/samples`).forEach((dir) => { fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
if (dir[0] === '.') return; if (dir[0] === ".") return;
const config = loadConfig(`${__dirname}/samples/${dir}/_config.js`); const config = loadConfig(`${__dirname}/samples/${dir}/_config.js`);
@ -45,7 +45,7 @@ describe('ssr', () => {
const show = /\.show/.test(dir); const show = /\.show/.test(dir);
if (solo && process.env.CI) { if (solo && process.env.CI) {
throw new Error('Forgot to remove `solo: true` from test'); throw new Error("Forgot to remove `solo: true` from test");
} }
(skip ? it.skip : solo ? it.only : it)(dir, () => { (skip ? it.skip : solo ? it.only : it)(dir, () => {
@ -56,17 +56,17 @@ describe('ssr', () => {
const compileOptions = { const compileOptions = {
sveltePath, sveltePath,
...config.compileOptions, ...config.compileOptions,
generate: 'ssr', generate: "ssr",
format: 'cjs', format: "cjs",
}; };
require('../../register')(compileOptions); require("../../register")(compileOptions);
try { try {
const Component = require(`${dir}/main.svelte`).default; const Component = require(`${dir}/main.svelte`).default;
const expectedHtml = tryToReadFile(`${dir}/_expected.html`); const expectedHtml = tryToReadFile(`${dir}/_expected.html`);
const expectedCss = tryToReadFile(`${dir}/_expected.css`) || ''; const expectedCss = tryToReadFile(`${dir}/_expected.css`) || "";
const props = tryToLoadJson(`${dir}/data.json`) || undefined; const props = tryToLoadJson(`${dir}/data.json`) || undefined;
@ -88,7 +88,10 @@ describe('ssr', () => {
} }
try { try {
assert.equal(css.code.replace(/^\s+/gm, '').replace(/[\r\n]/, ''), expectedCss.replace(/^\s+/gm, '').replace(/[\r\n]/, '')); assert.equal(
css.code.replace(/^\s+/gm, "").replace(/[\r\n]/, ""),
expectedCss.replace(/^\s+/gm, "").replace(/[\r\n]/, "")
);
} catch (error) { } catch (error) {
if (shouldUpdateExpected()) { if (shouldUpdateExpected()) {
fs.writeFileSync(`${dir}/_expected.css`, css.code); fs.writeFileSync(`${dir}/_expected.css`, css.code);
@ -102,7 +105,10 @@ describe('ssr', () => {
fs.writeFileSync(`${dir}/_actual-head.html`, head); fs.writeFileSync(`${dir}/_actual-head.html`, head);
try { try {
assert.htmlEqual(head, fs.readFileSync(`${dir}/_expected-head.html`, 'utf-8')); assert.htmlEqual(
head,
fs.readFileSync(`${dir}/_expected-head.html`, 'utf-8')
);
} catch (error) { } catch (error) {
if (shouldUpdateExpected()) { if (shouldUpdateExpected()) {
fs.writeFileSync(`${dir}/_expected-head.html`, head); fs.writeFileSync(`${dir}/_expected-head.html`, head);
@ -113,9 +119,9 @@ describe('ssr', () => {
} }
} }
if (show) showOutput(dir, { generate: 'ssr', format: 'cjs' }); if (show) showOutput(dir, { generate: "ssr", format: "cjs" });
} catch (err) { } catch (err) {
showOutput(dir, { generate: 'ssr', format: 'cjs' }); showOutput(dir, { generate: "ssr", format: "cjs" });
err.stack += `\n\ncmd-click: ${path.relative(process.cwd(), dir)}/main.svelte`; err.stack += `\n\ncmd-click: ${path.relative(process.cwd(), dir)}/main.svelte`;
throw err; throw err;
} }
@ -123,21 +129,21 @@ describe('ssr', () => {
}); });
// duplicate client-side tests, as far as possible // duplicate client-side tests, as far as possible
fs.readdirSync('test/runtime/samples').forEach((dir) => { fs.readdirSync("test/runtime/samples").forEach(dir => {
if (dir[0] === '.') return; if (dir[0] === ".") return;
const config = loadConfig(`./runtime/samples/${dir}/_config.js`); const config = loadConfig(`./runtime/samples/${dir}/_config.js`);
const solo = config.solo || /\.solo/.test(dir); const solo = config.solo || /\.solo/.test(dir);
const skip = config.skip || /\.skip/.test(dir); const skip = config.skip || /\.skip/.test(dir);
if (solo && process.env.CI) { if (solo && process.env.CI) {
throw new Error('Forgot to remove `solo: true` from test'); throw new Error("Forgot to remove `solo: true` from test");
} }
if (config.skip_if_ssr) return; if (config.skip_if_ssr) return;
(skip ? it.skip : solo ? it.only : it)(dir, () => { (skip ? it.skip : solo ? it.only : it)(dir, () => {
const cwd = path.resolve('test/runtime/samples', dir); const cwd = path.resolve("test/runtime/samples", dir);
cleanRequireCache(); cleanRequireCache();
@ -146,17 +152,17 @@ describe('ssr', () => {
const compileOptions = { const compileOptions = {
sveltePath, sveltePath,
...config.compileOptions, ...config.compileOptions,
generate: 'ssr', generate: "ssr",
format: 'cjs', format: "cjs"
}; };
require('../../register')(compileOptions); require("../../register")(compileOptions);
glob('**/*.svelte', { cwd }).forEach((file) => { glob("**/*.svelte", { cwd }).forEach((file) => {
if (file[0] === '_') return; if (file[0] === "_") return;
const dir = `${cwd}/_output/ssr`; const dir = `${cwd}/_output/ssr`;
const out = `${dir}/${file.replace(/\.svelte$/, '.js')}`; const out = `${dir}/${file.replace(/\.svelte$/, ".js")}`;
if (fs.existsSync(out)) { if (fs.existsSync(out)) {
fs.unlinkSync(out); fs.unlinkSync(out);
@ -165,10 +171,13 @@ describe('ssr', () => {
mkdirp(dir); mkdirp(dir);
try { try {
const { js } = compile(fs.readFileSync(`${cwd}/${file}`, 'utf-8'), { const { js } = compile(
fs.readFileSync(`${cwd}/${file}`, 'utf-8'),
{
...compileOptions, ...compileOptions,
filename: file, filename: file
}); }
);
fs.writeFileSync(out, js.code); fs.writeFileSync(out, js.code);
} catch (err) { } catch (err) {
@ -181,7 +190,7 @@ describe('ssr', () => {
const Component = require(`../runtime/samples/${dir}/main.svelte`).default; const Component = require(`../runtime/samples/${dir}/main.svelte`).default;
const { html } = Component.render(config.props, { const { html } = Component.render(config.props, {
store: config.store !== true && config.store, store: (config.store !== true) && config.store
}); });
if (config.ssrHtml) { if (config.ssrHtml) {
@ -199,7 +208,7 @@ describe('ssr', () => {
err.stack += `\n\ncmd-click: ${path.relative(process.cwd(), cwd)}/main.svelte`; err.stack += `\n\ncmd-click: ${path.relative(process.cwd(), cwd)}/main.svelte`;
if (config.error) { if (config.error) {
if (typeof config.error === 'function') { if (typeof config.error === "function") {
config.error(assert, err); config.error(assert, err);
} else { } else {
assert.equal(err.message, config.error); assert.equal(err.message, config.error);

Loading…
Cancel
Save