tusktsk
Version:
TuskTsk - The Freedom Configuration Language. Query databases, use any syntax, never bow to any king!
76 lines (68 loc) โข 2.38 kB
JavaScript
/**
* Testing Commands for TuskLang CLI
* ==================================
* Implements all testing operations from the CLI specification
*/
const fs = require('fs').promises;
const path = require('path');
const TuskLang = require('../../index.js');
// Test suites
const testSuites = {
parser: require('./test-suites/parser.js'),
fujsen: require('./test-suites/fujsen.js'),
sdk: require('./test-suites/sdk.js'),
performance: require('./test-suites/performance.js')
};
// Main test runner
async function run(suite = 'all') {
try {
console.log(`๐งช Running TuskLang test suite: ${suite}`);
const results = {
total: 0,
passed: 0,
failed: 0,
suites: {}
};
if (suite === 'all') {
// Run all test suites
for (const [suiteName, suiteRunner] of Object.entries(testSuites)) {
console.log(`\n๐ Running ${suiteName} tests...`);
const suiteResults = await suiteRunner();
results.suites[suiteName] = suiteResults;
results.total += suiteResults.total;
results.passed += suiteResults.passed;
results.failed += suiteResults.failed;
}
} else if (testSuites[suite]) {
// Run specific test suite
console.log(`\n๐ Running ${suite} tests...`);
const suiteResults = await testSuites[suite]();
results.suites[suite] = suiteResults;
results.total = suiteResults.total;
results.passed = suiteResults.passed;
results.failed = suiteResults.failed;
} else {
throw new Error(`Unknown test suite: ${suite}`);
}
// Print summary
console.log('\n๐ Test Results Summary:');
console.log('========================');
console.log(`Total Tests: ${results.total}`);
console.log(`Passed: ${results.passed} โ
`);
console.log(`Failed: ${results.failed} โ`);
console.log(`Success Rate: ${((results.passed / results.total) * 100).toFixed(1)}%`);
if (results.failed > 0) {
console.log('\nโ Some tests failed. Check the output above for details.');
return { success: false, results };
} else {
console.log('\nโ
All tests passed!');
return { success: true, results };
}
} catch (error) {
console.error('โ Test execution failed:', error.message);
return { success: false, error: error.message };
}
}
module.exports = {
run
};