ctrlshiftleft
Version:
AI-powered toolkit for embedding QA and security testing into development workflows
47 lines • 2.32 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.genCommand = genCommand;
const chalk_1 = __importDefault(require("chalk"));
const ora_1 = __importDefault(require("ora"));
const path_1 = __importDefault(require("path"));
const testGenerator_1 = require("../core/testGenerator");
const fileUtils_1 = require("../utils/fileUtils");
function genCommand(program) {
program
.command('gen')
.description('Generate end-to-end tests from source code')
.argument('<source>', 'Source file or directory to analyze')
.option('-o, --output <directory>', 'Output directory for generated tests', './tests')
.option('-f, --format <format>', 'Test format (playwright or selenium)', 'playwright')
.option('-t, --timeout <timeout>', 'Timeout for test generation in seconds', '60')
.action(async (source, options) => {
const spinner = (0, ora_1.default)('Analyzing source code...').start();
try {
// Validate source path
if (!await (0, fileUtils_1.isValidSourcePath)(source)) {
spinner.fail(`Invalid source path: ${source}`);
return;
}
const absoluteSourcePath = path_1.default.resolve(process.cwd(), source);
const outputDir = path_1.default.resolve(process.cwd(), options.output);
// Initialize test generator
const generator = new testGenerator_1.TestGenerator({
format: options.format,
timeout: parseInt(options.timeout, 10)
});
spinner.text = 'Generating tests...';
const result = await generator.generateTests(absoluteSourcePath, outputDir);
spinner.succeed(`Successfully generated ${result.testCount} tests in ${outputDir}`);
console.log(`\n${chalk_1.default.green('✓')} Generated test files: ${result.files.join(', ')}`);
}
catch (error) {
spinner.fail(`Test generation failed: ${error.message}`);
console.error(chalk_1.default.red(error.stack));
process.exit(1);
}
});
}
//# sourceMappingURL=gen.js.map