BMAD-METHOD/tools/claude-code-hooks/__tests__/run-all-tests.js

63 lines
1.3 KiB
JavaScript

#!/usr/bin/env node
/**
* Run all BMAD hooks tests
* Uses only Node.js built-in modules
*/
const { spawn } = require('child_process');
const path = require('path');
const tests = [
'user-prompt-submit.test.js',
'pre-tool-use.test.js'
];
async function runTest(testFile) {
return new Promise((resolve, reject) => {
const testPath = path.join(__dirname, testFile);
const child = spawn('node', [testPath], {
stdio: 'inherit'
});
child.on('close', (code) => {
if (code === 0) {
resolve();
} else {
reject(new Error(`Test ${testFile} failed with code ${code}`));
}
});
child.on('error', reject);
});
}
async function runAllTests() {
console.log('='.repeat(50));
console.log('BMAD Claude Code Hooks Test Suite');
console.log('='.repeat(50));
console.log();
let passed = 0;
let failed = 0;
for (const test of tests) {
try {
await runTest(test);
passed++;
console.log();
} catch (error) {
failed++;
console.error(`\nTest suite ${test} failed:`, error.message);
console.log();
}
}
console.log('='.repeat(50));
console.log(`Total: ${passed} test suites passed, ${failed} failed`);
console.log('='.repeat(50));
process.exit(failed > 0 ? 1 : 0);
}
runAllTests();