diff --git a/scripts/test-prepush.js b/scripts/test-prepush.js index 7ba07ff..8d1e15d 100644 --- a/scripts/test-prepush.js +++ b/scripts/test-prepush.js @@ -1,54 +1 @@ -const Mocha = require("mocha"); -const glob = require("glob").glob; -const { execSync } = require("child_process"); -const fs = require("fs"); -const path = require("path"); - -function runMochaWithFiles(files, description) { - console.log(`Running ${description}...`); - const mocha = new Mocha({ - reporter: "spec", - timeout: 5000, - }); - - files.forEach((file) => mocha.addFile(file)); - - return new Promise((resolve, reject) => { - mocha.run((failures) => { - if (failures) { - reject(new Error(`${description} failed with ${failures} failures`)); - } else { - resolve(); - } - }); - }); -} - -async function findTestFiles(pattern) { - return new Promise((resolve, reject) => { - glob(pattern, (err, files) => { - if (err) reject(err); - else resolve(files.map((f) => path.resolve(f))); - }); - }); -} - -async function runTests() { - try { - const unitTestFiles = await findTestFiles("test/**/*.unit.test.js"); - await runMochaWithFiles(unitTestFiles, "unit tests"); - - const propertyTestFiles = await findTestFiles("test/**/*.property.test.js"); - await runMochaWithFiles(propertyTestFiles, "property-based tests"); - - const commitHash = execSync("git rev-parse HEAD").toString().trim(); - fs.writeFileSync(".last_tested_commit", commitHash + "\n"); - - require("./runTests"); - } catch (err) { - console.error("Test execution failed:", err.message); - process.exit(1); - } -} - -runTests(); +require("./runTests");