UNPKG

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
#!/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();