2023-04-17 10:29:36 +05:30
|
|
|
import { exec, spawn } from "child_process";
|
|
|
|
|
import { promisify } from "util";
|
|
|
|
|
|
|
|
|
|
const execAsync = promisify(exec);
|
|
|
|
|
|
2024-04-24 22:30:55 +03:00
|
|
|
const WAKUNODE_IMAGE = process.env.WAKUNODE_IMAGE || "wakuorg/nwaku:v0.27.0";
|
2023-04-17 10:29:36 +05:30
|
|
|
|
|
|
|
|
async function main() {
|
|
|
|
|
try {
|
|
|
|
|
await execAsync(`docker inspect ${WAKUNODE_IMAGE}`);
|
2023-08-24 14:03:44 +03:00
|
|
|
console.log(`Using local image ${WAKUNODE_IMAGE}`);
|
2023-04-17 10:29:36 +05:30
|
|
|
} catch (error) {
|
2023-08-24 14:03:44 +03:00
|
|
|
console.log(`Pulling image ${WAKUNODE_IMAGE}`);
|
2023-04-17 10:29:36 +05:30
|
|
|
await execAsync(`docker pull ${WAKUNODE_IMAGE}`);
|
|
|
|
|
console.log("Image pulled");
|
|
|
|
|
}
|
|
|
|
|
|
2023-10-13 17:32:28 +03:00
|
|
|
const mochaArgs = [
|
|
|
|
|
"mocha",
|
|
|
|
|
"--require",
|
|
|
|
|
"ts-node/register",
|
|
|
|
|
"--project",
|
|
|
|
|
"./tsconfig.dev.json",
|
|
|
|
|
...process.argv.slice(2)
|
|
|
|
|
];
|
|
|
|
|
|
2023-04-17 10:29:36 +05:30
|
|
|
// Run mocha tests
|
2023-10-13 17:32:28 +03:00
|
|
|
const mocha = spawn("npx", mochaArgs, {
|
|
|
|
|
stdio: "inherit"
|
|
|
|
|
});
|
2023-04-17 10:29:36 +05:30
|
|
|
|
|
|
|
|
mocha.on("error", (error) => {
|
|
|
|
|
console.log(`Error running mocha tests: ${error.message}`);
|
|
|
|
|
process.exit(1);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
mocha.on("exit", (code) => {
|
|
|
|
|
console.log(`Mocha tests exited with code ${code}`);
|
|
|
|
|
process.exit(code || 0);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
main().catch((error) => {
|
|
|
|
|
console.log(error);
|
|
|
|
|
process.exit(1);
|
|
|
|
|
});
|