0
0
mirror of https://github.com/sveltejs/svelte.git synced 2024-12-01 17:30:59 +01:00

more improvements to ergonomics around test failures

This commit is contained in:
Rich Harris 2017-06-11 13:57:19 -04:00
parent 4037b647cb
commit d50c29bb6a
2 changed files with 16 additions and 15 deletions

View File

@ -46,6 +46,8 @@ describe("runtime", () => {
return setupHtmlEqual();
});
const failed = new Set();
function runTest(dir, shared) {
if (dir[0] === ".") return;
@ -55,7 +57,12 @@ describe("runtime", () => {
throw new Error("Forgot to remove `solo: true` from test");
}
(config.skip ? it.skip : config.solo ? it.only : it)(dir, () => {
(config.skip ? it.skip : config.solo ? it.only : it)(`${dir} (${shared ? 'shared' : 'inline'} helpers`, () => {
if (failed.has(dir)) {
// this makes debugging easier, by only printing compiled output once
throw new Error('skipping inline helpers test');
}
const cwd = path.resolve(`test/runtime/samples/${dir}`);
let compiled;
@ -74,6 +81,7 @@ describe("runtime", () => {
config.compileError(err);
return;
} else {
failed.add(dir);
showOutput(cwd, shared);
throw err;
}
@ -92,13 +100,12 @@ describe("runtime", () => {
code.slice(startIndex).replace(/export default .+/, "");
acorn.parse(es5, { ecmaVersion: 5 });
} catch (err) {
if (!config.show) showOutput(cwd, shared); // eslint-disable-line no-console
failed.add(dir);
showOutput(cwd, shared); // eslint-disable-line no-console
throw err;
}
}
if (config.show) showOutput(cwd, shared);
Object.keys(require.cache)
.filter(x => x.endsWith(".html"))
.forEach(file => {
@ -202,6 +209,7 @@ describe("runtime", () => {
if (config.error && !unintendedError) {
config.error(assert, err);
} else {
failed.add(dir);
showOutput(cwd, shared); // eslint-disable-line no-console
throw err;
}
@ -212,17 +220,10 @@ describe("runtime", () => {
});
}
describe("inline helpers", () => {
fs.readdirSync("test/runtime/samples").forEach(dir => {
runTest(dir, null);
});
});
const shared = path.resolve("shared.js");
describe("shared helpers", () => {
fs.readdirSync("test/runtime/samples").forEach(dir => {
runTest(dir, shared);
});
fs.readdirSync("test/runtime/samples").forEach(dir => {
runTest(dir, shared);
runTest(dir, null);
});
it("fails if options.target is missing in dev mode", () => {

View File

@ -1,5 +1,5 @@
export default {
test (assert, component) {
test(assert, component) {
component.refs.l1.destroy();
}
};