blob: 5452669dd787c7dd89295ecc12e95ce092164c00 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
import fs from "node:fs/promises";
import util from "node:util";
import { exec as nodeExec } from "node:child_process";
const exec = util.promisify( nodeExec );
// Fire up all tests defined in test/node_smoke_tests/*.js in spawned sub-processes.
// All the files under test/node_smoke_tests/*.js are supposed to exit with 0 code
// on success or another one on failure. Spawning in sub-processes is
// important so that the tests & the main process don't interfere with
// each other, e.g. so that they don't share the `require` cache.
async function runTests( { module } ) {
const dir = "./test/node_smoke_tests";
const files = await fs.readdir( dir, { withFileTypes: true } );
const testFiles = files.filter( ( testFilePath ) => testFilePath.isFile() );
if ( !testFiles.length ) {
throw new Error( `No test files found for "${ module }"` );
}
await Promise.all(
testFiles.map( ( testFile ) =>
exec( `node "${ dir }/${ testFile.name }" ${ module }` )
)
);
console.log( `Node smoke tests passed for "${ module }".` );
}
async function runDefaultTests() {
await Promise.all( [
runTests( { module: "./dist/jquery.js" } ),
runTests( { module: "./dist/jquery.slim.js" } )
] );
}
runDefaultTests();
|