Skip to content

Commit 5dbb08d

Browse files
tanhauhauConduitry
authored andcommitted
allow solo for test suite (sveltejs#3747)
1 parent f68b3a3 commit 5dbb08d

File tree

13 files changed

+59
-48
lines changed

13 files changed

+59
-48
lines changed

test/css/index.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ function create(code) {
3737
}
3838

3939
describe('css', () => {
40-
fs.readdirSync('test/css/samples').forEach(dir => {
40+
fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
4141
if (dir[0] === '.') return;
4242

4343
// add .solo to a sample directory name to only run that test
@@ -51,7 +51,7 @@ describe('css', () => {
5151
(solo ? it.only : skip ? it.skip : it)(dir, () => {
5252
const config = try_require(`./samples/${dir}/_config.js`) || {};
5353
const input = fs
54-
.readFileSync(`test/css/samples/${dir}/input.svelte`, 'utf-8')
54+
.readFileSync(`${__dirname}/samples/${dir}/input.svelte`, 'utf-8')
5555
.replace(/\s+$/, '');
5656

5757
const expected_warnings = (config.warnings || []).map(normalize_warning);
@@ -74,10 +74,10 @@ describe('css', () => {
7474
assert.deepEqual(dom_warnings, ssr_warnings);
7575
assert.deepEqual(dom_warnings.map(normalize_warning), expected_warnings);
7676

77-
fs.writeFileSync(`test/css/samples/${dir}/_actual.css`, dom.css.code);
77+
fs.writeFileSync(`${__dirname}/samples/${dir}/_actual.css`, dom.css.code);
7878
const expected = {
79-
html: read(`test/css/samples/${dir}/expected.html`),
80-
css: read(`test/css/samples/${dir}/expected.css`)
79+
html: read(`${__dirname}/samples/${dir}/expected.html`),
80+
css: read(`${__dirname}/samples/${dir}/expected.css`)
8181
};
8282

8383
assert.equal(dom.css.code.replace(/svelte(-ref)?-[a-z0-9]+/g, (m, $1) => $1 ? m : 'svelte-xyz'), expected.css);
@@ -112,7 +112,7 @@ describe('css', () => {
112112
new ClientComponent({ target, props: config.props });
113113
const html = target.innerHTML;
114114

115-
fs.writeFileSync(`test/css/samples/${dir}/_actual.html`, html);
115+
fs.writeFileSync(`${__dirname}/samples/${dir}/_actual.html`, html);
116116

117117
assert.equal(
118118
normalizeHtml(window, html.replace(/svelte(-ref)?-[a-z0-9]+/g, (m, $1) => $1 ? m : 'svelte-xyz')),

test/custom-elements/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const page = `
1414
</body>
1515
`;
1616

17-
const assert = fs.readFileSync('test/custom-elements/assert.js', 'utf-8');
17+
const assert = fs.readFileSync(`${__dirname}/assert.js`, 'utf-8');
1818

1919
describe('custom-elements', function() {
2020
this.timeout(10000);
@@ -53,7 +53,7 @@ describe('custom-elements', function() {
5353
await browser.close();
5454
});
5555

56-
fs.readdirSync('test/custom-elements/samples').forEach(dir => {
56+
fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
5757
if (dir[0] === '.') return;
5858

5959
const solo = /\.solo$/.test(dir);
@@ -67,7 +67,7 @@ describe('custom-elements', function() {
6767
const expected_warnings = config.warnings || [];
6868

6969
const bundle = await rollup({
70-
input: `test/custom-elements/samples/${dir}/test.js`,
70+
input: `${__dirname}/samples/${dir}/test.js`,
7171
plugins: [
7272
{
7373
resolveId(importee) {

test/hydration/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ describe('hydration', () => {
4747
}
4848

4949
(config.skip ? it.skip : config.solo ? it.only : it)(dir, () => {
50-
const cwd = path.resolve(`test/hydration/samples/${dir}`);
50+
const cwd = path.resolve(`${__dirname}/samples/${dir}`);
5151

5252
compileOptions = config.compileOptions || {};
5353

@@ -96,7 +96,7 @@ describe('hydration', () => {
9696
});
9797
}
9898

99-
fs.readdirSync('test/hydration/samples').forEach(dir => {
99+
fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
100100
runTest(dir, null);
101101
});
102102
});

test/js/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as path from "path";
44
import { loadConfig, svelte } from "../helpers.js";
55

66
describe("js", () => {
7-
fs.readdirSync("test/js/samples").forEach(dir => {
7+
fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
88
if (dir[0] === ".") return;
99

1010
// add .solo to a sample directory name to only run that test
@@ -15,7 +15,7 @@ describe("js", () => {
1515
}
1616

1717
(solo ? it.only : it)(dir, () => {
18-
dir = path.resolve("test/js/samples", dir);
18+
dir = path.resolve(`${__dirname}/samples`, dir);
1919
const config = loadConfig(`${dir}/_config.js`);
2020

2121
const input = fs.readFileSync(`${dir}/input.svelte`, "utf-8").replace(/\s+$/, "");

test/parser/index.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import * as fs from 'fs';
33
import { svelte, tryToLoadJson } from '../helpers.js';
44

55
describe('parse', () => {
6-
fs.readdirSync('test/parser/samples').forEach(dir => {
6+
fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
77
if (dir[0] === '.') return;
88

99
// add .solo to a sample directory name to only run that test
@@ -16,18 +16,18 @@ describe('parse', () => {
1616
}
1717

1818
(solo ? it.only : it)(dir, () => {
19-
const options = tryToLoadJson(`test/parser/samples/${dir}/options.json`) || {};
19+
const options = tryToLoadJson(`${__dirname}/samples/${dir}/options.json`) || {};
2020

21-
const input = fs.readFileSync(`test/parser/samples/${dir}/input.svelte`, 'utf-8').replace(/\s+$/, '');
22-
const expectedOutput = tryToLoadJson(`test/parser/samples/${dir}/output.json`);
23-
const expectedError = tryToLoadJson(`test/parser/samples/${dir}/error.json`);
21+
const input = fs.readFileSync(`${__dirname}/samples/${dir}/input.svelte`, 'utf-8').replace(/\s+$/, '');
22+
const expectedOutput = tryToLoadJson(`${__dirname}/samples/${dir}/output.json`);
23+
const expectedError = tryToLoadJson(`${__dirname}/samples/${dir}/error.json`);
2424

2525
try {
2626
const { ast } = svelte.compile(input, Object.assign(options, {
2727
generate: false
2828
}));
2929

30-
fs.writeFileSync(`test/parser/samples/${dir}/_actual.json`, JSON.stringify(ast, null, '\t'));
30+
fs.writeFileSync(`${__dirname}/samples/${dir}/_actual.json`, JSON.stringify(ast, null, '\t'));
3131

3232
assert.deepEqual(ast.html, expectedOutput.html);
3333
assert.deepEqual(ast.css, expectedOutput.css);

test/preprocess/index.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@ import * as assert from 'assert';
33
import { loadConfig, svelte } from '../helpers.js';
44

55
describe('preprocess', () => {
6-
fs.readdirSync('test/preprocess/samples').forEach(dir => {
6+
fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
77
if (dir[0] === '.') return;
88

9-
const config = loadConfig(`./preprocess/samples/${dir}/_config.js`);
9+
const config = loadConfig(`${__dirname}/samples/${dir}/_config.js`);
1010

1111
if (config.solo && process.env.CI) {
1212
throw new Error('Forgot to remove `solo: true` from test');
1313
}
1414

1515
(config.skip ? it.skip : config.solo ? it.only : it)(dir, async () => {
16-
const input = fs.readFileSync(`test/preprocess/samples/${dir}/input.svelte`, 'utf-8');
17-
const expected = fs.readFileSync(`test/preprocess/samples/${dir}/output.svelte`, 'utf-8');
16+
const input = fs.readFileSync(`${__dirname}/samples/${dir}/input.svelte`, 'utf-8');
17+
const expected = fs.readFileSync(`${__dirname}/samples/${dir}/output.svelte`, 'utf-8');
1818

1919
const result = await svelte.preprocess(input, config.preprocess);
20-
fs.writeFileSync(`test/preprocess/samples/${dir}/_actual.html`, result.code);
20+
fs.writeFileSync(`${__dirname}/samples/${dir}/_actual.html`, result.code);
2121

2222
assert.equal(result.code, expected);
2323

test/runtime/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ describe("runtime", () => {
4949
function runTest(dir, hydrate) {
5050
if (dir[0] === ".") return;
5151

52-
const config = loadConfig(`./runtime/samples/${dir}/_config.js`);
52+
const config = loadConfig(`${__dirname}/samples/${dir}/_config.js`);
5353

5454
if (hydrate && config.skip_if_hydrate) return;
5555

@@ -67,7 +67,7 @@ describe("runtime", () => {
6767

6868
compile = (config.preserveIdentifiers ? svelte : svelte$).compile;
6969

70-
const cwd = path.resolve(`test/runtime/samples/${dir}`);
70+
const cwd = path.resolve(`${__dirname}/samples/${dir}`);
7171

7272
compileOptions = config.compileOptions || {};
7373
compileOptions.format = 'cjs';
@@ -215,7 +215,7 @@ describe("runtime", () => {
215215
});
216216
}
217217

218-
fs.readdirSync("test/runtime/samples").forEach(dir => {
218+
fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
219219
runTest(dir, false);
220220
runTest(dir, true);
221221
});

test/server-side-rendering/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ describe("ssr", () => {
3030
return setupHtmlEqual();
3131
});
3232

33-
fs.readdirSync("test/server-side-rendering/samples").forEach(dir => {
33+
fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
3434
if (dir[0] === ".") return;
3535

3636
// add .solo to a sample directory name to only run that test, or
@@ -43,7 +43,7 @@ describe("ssr", () => {
4343
}
4444

4545
(solo ? it.only : it)(dir, () => {
46-
dir = path.resolve("test/server-side-rendering/samples", dir);
46+
dir = path.resolve(`${__dirname}/samples`, dir);
4747
try {
4848
const Component = require(`${dir}/main.svelte`).default;
4949

test/sourcemaps/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { SourceMapConsumer } from "source-map";
66
import { getLocator } from "locate-character";
77

88
describe("sourcemaps", () => {
9-
fs.readdirSync("test/sourcemaps/samples").forEach(dir => {
9+
fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
1010
if (dir[0] === ".") return;
1111

1212
// add .solo to a sample directory name to only run that test
@@ -19,10 +19,10 @@ describe("sourcemaps", () => {
1919

2020
(solo ? it.only : skip ? it.skip : it)(dir, async () => {
2121
const filename = path.resolve(
22-
`test/sourcemaps/samples/${dir}/input.svelte`
22+
`${__dirname}/samples/${dir}/input.svelte`
2323
);
2424
const outputFilename = path.resolve(
25-
`test/sourcemaps/samples/${dir}/output`
25+
`${__dirname}/samples/${dir}/output`
2626
);
2727

2828
const input = fs.readFileSync(filename, "utf-8").replace(/\s+$/, "");

test/stats/index.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import * as assert from 'assert';
33
import { svelte, loadConfig, tryToLoadJson } from '../helpers.js';
44

55
describe('stats', () => {
6-
fs.readdirSync('test/stats/samples').forEach(dir => {
6+
fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
77
if (dir[0] === '.') return;
88

99
// add .solo to a sample directory name to only run that test
@@ -15,12 +15,12 @@ describe('stats', () => {
1515
}
1616

1717
(solo ? it.only : skip ? it.skip : it)(dir, () => {
18-
const config = loadConfig(`./stats/samples/${dir}/_config.js`);
19-
const filename = `test/stats/samples/${dir}/input.svelte`;
18+
const config = loadConfig(`${__dirname}/samples/${dir}/_config.js`);
19+
const filename = `${__dirname}/samples/${dir}/input.svelte`;
2020
const input = fs.readFileSync(filename, 'utf-8').replace(/\s+$/, '');
2121

2222
const expectedError = tryToLoadJson(
23-
`test/stats/samples/${dir}/error.json`
23+
`${__dirname}/samples/${dir}/error.json`
2424
);
2525

2626
let result;

test/test.js

+14-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@ require('../internal');
88

99
console.clear();
1010

11-
glob('*/index.js', { cwd: 'test' }).forEach((file) => {
12-
require('./' + file);
13-
});
11+
const testFolders = glob('*/index.js', { cwd: 'test' });
12+
const solo = testFolders.find(folder => /\.solo/.test(folder));
13+
14+
if (solo) {
15+
if (process.env.CI) {
16+
throw new Error('Forgot to remove `solo: true` from test');
17+
}
18+
require('./' + solo);
19+
} else {
20+
testFolders.forEach(file => {
21+
console.log('file', file);
22+
require('./' + file);
23+
});
24+
}

test/validator/index.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import * as assert from "assert";
33
import { svelte, loadConfig, tryToLoadJson } from "../helpers.js";
44

55
describe("validate", () => {
6-
fs.readdirSync("test/validator/samples").forEach(dir => {
6+
fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
77
if (dir[0] === ".") return;
88

99
// add .solo to a sample directory name to only run that test
@@ -15,11 +15,11 @@ describe("validate", () => {
1515
}
1616

1717
(solo ? it.only : skip ? it.skip : it)(dir, () => {
18-
const config = loadConfig(`./validator/samples/${dir}/_config.js`);
18+
const config = loadConfig(`${__dirname}/samples/${dir}/_config.js`);
1919

20-
const input = fs.readFileSync(`test/validator/samples/${dir}/input.svelte`, "utf-8").replace(/\s+$/, "");
21-
const expected_warnings = tryToLoadJson(`test/validator/samples/${dir}/warnings.json`) || [];
22-
const expected_errors = tryToLoadJson(`test/validator/samples/${dir}/errors.json`);
20+
const input = fs.readFileSync(`${__dirname}/samples/${dir}/input.svelte`, "utf-8").replace(/\s+$/, "");
21+
const expected_warnings = tryToLoadJson(`${__dirname}/samples/${dir}/warnings.json`) || [];
22+
const expected_errors = tryToLoadJson(`${__dirname}/samples/${dir}/errors.json`);
2323

2424
let error;
2525

test/vars/index.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import * as assert from 'assert';
33
import { svelte, loadConfig, tryToLoadJson } from '../helpers.js';
44

55
describe('vars', () => {
6-
fs.readdirSync('test/vars/samples').forEach(dir => {
6+
fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
77
if (dir[0] === '.') return;
88

99
// add .solo to a sample directory name to only run that test
@@ -16,12 +16,12 @@ describe('vars', () => {
1616

1717
for (const generate of ['dom', 'ssr', false]) {
1818
(solo ? it.only : skip ? it.skip : it)(`${dir}, generate: ${generate}`, () => {
19-
const config = loadConfig(`./vars/samples/${dir}/_config.js`);
20-
const filename = `test/vars/samples/${dir}/input.svelte`;
19+
const config = loadConfig(`${__dirname}/samples/${dir}/_config.js`);
20+
const filename = `${__dirname}/samples/${dir}/input.svelte`;
2121
const input = fs.readFileSync(filename, 'utf-8').replace(/\s+$/, '');
2222

2323
const expectedError = tryToLoadJson(
24-
`test/vars/samples/${dir}/error.json`
24+
`${__dirname}/samples/${dir}/error.json`
2525
);
2626

2727
let result;

0 commit comments

Comments
 (0)