myaidev-method
Version:
Comprehensive development framework with SPARC methodology for AI-assisted software development, multi-platform publishing (WordPress, PayloadCMS, Astro, Docusaurus, Mintlify), and Coolify deployment
116 lines (95 loc) โข 3.38 kB
JavaScript
#!/usr/bin/env node
/**
* MyAIDev Method - Testing CLI
*
* Invokes the dev-tester agent to create comprehensive test suites,
* generate coverage reports, and validate quality gates.
*
* Usage:
* npx myaidev-method dev:test "Test authentication system"
* npx myaidev-method dev:test "Integration tests for checkout" --integration
*/
import { SparcWorkflow } from '../lib/dev-workflow/sparc-workflow.js';
import { getAgentByPhase } from '../lib/dev-workflow/agent-types.js';
async function main() {
const args = process.argv.slice(2);
if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
console.log(`
๐งช MyAIDev Method - Testing
Usage:
npx myaidev-method dev:test "Test authentication"
npx myaidev-method dev:test "Test checkout flow" --integration --coverage
Options:
--coverage Generate coverage report
--integration Focus on integration tests
--framework <name> Testing framework (jest, mocha, pytest, etc.)
--output-dir <path> Custom output directory (default: .myaidev-method/sparc/test-results/)
--help, -h Show this help message
Examples:
npx myaidev-method dev:test "Test user authentication"
npx myaidev-method dev:test "Integration tests for API" --integration --coverage
npx myaidev-method dev:test "Test payment module" --framework jest
Testing Standards:
- 80%+ coverage for critical paths
- 60%+ overall coverage
- AAA pattern (Arrange, Act, Assert)
- Edge cases and error scenarios
- Quality gates (pre-commit, pre-merge)
Output:
.myaidev-method/sparc/test-results/
Next Phase:
After testing, run:
npx myaidev-method dev:review "Review [feature]"
`);
process.exit(0);
}
const taskDescription = args[0];
// Parse options
const options = {
workingDir: process.cwd(),
};
for (let i = 1; i < args.length; i++) {
if (args[i] === '--coverage') {
options.coverage = true;
} else if (args[i] === '--integration') {
options.integration = true;
} else if (args[i] === '--framework' && args[i + 1]) {
options.framework = args[i + 1];
i++;
} else if (args[i] === '--output-dir' && args[i + 1]) {
options.outputDir = args[i + 1];
i++;
}
}
try {
console.log('๐งช MyAIDev Method - Testing');
console.log('๐ Task:', taskDescription);
if (options.integration) {
console.log('๐ Focus: Integration Tests');
}
if (options.framework) {
console.log('๐ง Framework:', options.framework);
}
console.log('');
const workflow = new SparcWorkflow(taskDescription, options);
const agent = getAgentByPhase('testing');
console.log(`๐ Invoking ${agent.emoji} ${agent.name}...`);
console.log('');
const result = await workflow.runPhase('testing');
console.log('');
console.log('โ
Testing complete!');
console.log('๐ Output:', result.outputDir);
if (options.coverage) {
console.log('๐ Coverage Report:', result.coverageReport);
}
console.log('');
console.log('๐ Next Steps:');
console.log(' 1. Review test results in .myaidev-method/sparc/test-results/');
console.log(' 2. Run: npx myaidev-method dev:review "Review [feature]"');
console.log('');
} catch (error) {
console.error('โ Error:', error.message);
process.exit(1);
}
}
main();