Skip to content

Commit 70fcb7e

Browse files
committed
Replace examples test with a runner.js script
1 parent 35e5a5a commit 70fcb7e

File tree

3 files changed

+34
-61
lines changed

3 files changed

+34
-61
lines changed

examples/runner.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
const { readdir } = require('node:fs/promises');
2+
const { join } = require('node:path');
3+
4+
const projectRootDir = join(__dirname, '..'),
5+
examplesDir = join(projectRootDir, 'examples');
6+
7+
for (const dir of ['balancer', 'http', 'middleware', 'websocket']) {
8+
readdir(join(examplesDir, dir)).then((files) => {
9+
const errors = [];
10+
files.forEach((file) => {
11+
const example = join(examplesDir, dir, file);
12+
try {
13+
console.log(`Starting example ${example}`);
14+
require(example);
15+
console.log(`Finished example ${example}`);
16+
} catch (error) {
17+
errors.push(error);
18+
console.warn(`Error running example ${example}.`, error);
19+
}
20+
});
21+
22+
// Using a timeout can be flaky. The alternative is making sure the servers
23+
// are closed properly in the examples.
24+
setTimeout(() => {
25+
if (!errors.length) {
26+
process.exit(0);
27+
} else {
28+
console.error(errors);
29+
process.exit(1);
30+
}
31+
}, 2_000);
32+
});
33+
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
],
2828
"scripts": {
2929
"build": "tsup lib/index.ts --target node16 --format cjs,esm --dts --clean",
30-
"watch": "npm run build -- --watch lib",
30+
"examples": "npm run build && node examples/runner.js",
3131
"format": "prettier --write ./lib",
3232
"lint": "eslint --fix ./lib",
3333
"test": "vitest run --coverage",

test/examples-test.js

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)