cross-platform test setup via shelljs

My attempt at solving https://github.com/sveltejs/svelte/issues/1478
pull/1481/head
Pat Cavit 7 years ago
parent b6300eea5e
commit e79e077b40

@ -82,6 +82,7 @@
"rollup-watch": "^4.3.1", "rollup-watch": "^4.3.1",
"sade": "^1.4.0", "sade": "^1.4.0",
"sander": "^0.6.0", "sander": "^0.6.0",
"shelljs": "^0.8.2",
"source-map": "0.6", "source-map": "0.6",
"source-map-support": "^0.5.4", "source-map-support": "^0.5.4",
"tiny-glob": "^0.2.1", "tiny-glob": "^0.2.1",

@ -1,10 +1,10 @@
const fs = require('fs'); const fs = require('fs');
const path = require('path'); const path = require('path');
const child_process = require('child_process');
const assert = require('assert'); const assert = require('assert');
const glob = require('tiny-glob/sync.js'); const glob = require('tiny-glob/sync.js');
const shell = require("shelljs");
const bin = path.resolve(`svelte`); const cli = path.resolve(__dirname, "../../cli/index.ts.js");
function normalize(str) { function normalize(str) {
return str return str
@ -31,49 +31,47 @@ describe('cli', () => {
const command = fs.readFileSync('command.sh', 'utf-8'); const command = fs.readFileSync('command.sh', 'utf-8');
child_process.exec(` shell.mkdir("-p", "actual");
alias svelte=${bin} shell.rm("-rf", "actual/*");
mkdir -p actual const { commandErr } = shell.exec(`node ${cli} ${command}`);
rm -rf actual/*
${command} if (commandErr) {
`, (err, stdout, stderr) => { done(commandErr);
if (err) { return;
done(err); }
return;
} const actual = glob('**', { cwd: 'actual', filesOnly: true })
.map(file => {
return {
file,
contents: normalize(fs.readFileSync(`actual/${file}`, 'utf-8'))
};
});
const actual = glob('**', { cwd: 'actual', filesOnly: true }) const expected = glob('**', { cwd: 'expected', filesOnly: true })
.map(file => { .map(file => {
return { return {
file, file,
contents: normalize(fs.readFileSync(`actual/${file}`, 'utf-8')) contents: normalize(
}; fs.readFileSync(`expected/${file}`, 'utf-8')
}); )
};
const expected = glob('**', { cwd: 'expected', filesOnly: true })
.map(file => {
return {
file,
contents: normalize(
fs.readFileSync(`expected/${file}`, 'utf-8')
)
};
});
actual.forEach((a, i) => {
const e = expected[i];
assert.equal(a.file, e.file, 'File list mismatch');
if (/\.map$/.test(a.file)) {
assert.deepEqual(JSON.parse(a.contents), JSON.parse(e.contents));
} else {
assert.equal(a.contents, e.contents);
}
}); });
done(); actual.forEach((a, i) => {
const e = expected[i];
assert.equal(a.file, e.file, 'File list mismatch');
if (/\.map$/.test(a.file)) {
assert.deepEqual(JSON.parse(a.contents), JSON.parse(e.contents));
} else {
assert.equal(a.contents, e.contents);
}
}); });
done();
// });
}); });
}); });
}); });

@ -1 +1 @@
svelte compile src/Main.html > actual/Main.js compile src/Main.html > actual/Main.js

@ -1 +1 @@
svelte compile src/Main.html --customElement > actual/Main.js compile src/Main.html --customElement > actual/Main.js

@ -1 +1 @@
svelte compile src/Main.html -d > actual/Main.js compile src/Main.html -d > actual/Main.js

@ -1 +1 @@
svelte compile src -m -o actual compile src -m -o actual

@ -1 +1 @@
svelte compile src -o actual compile src -o actual

@ -1 +1 @@
svelte compile src -o actual compile src -o actual

@ -1 +1 @@
svelte compile src/Main.html -f iife -g the-answer:theAnswer > actual/Main.js compile src/Main.html -f iife -g the-answer:theAnswer > actual/Main.js

@ -1 +1 @@
svelte compile src/Main.html -m inline -o actual/Main.js compile src/Main.html -m inline -o actual/Main.js

@ -1 +1 @@
svelte compile src/Main.html -m -o actual/Main.js compile src/Main.html -m -o actual/Main.js

@ -1 +1 @@
svelte compile --generate ssr src/Main.html > actual/Main.js compile --generate ssr src/Main.html > actual/Main.js

@ -1 +1 @@
svelte compile src/Main.html --store > actual/Main.js compile src/Main.html --store > actual/Main.js

Loading…
Cancel
Save