@aerocorp/cli
Version:
AeroCorp CLI 7.0.5 - Future-Proofed AI-Powered Infrastructure Platform with Quantum Security & Agentic Automation (2025-2035)
220 lines (184 loc) โข 6.29 kB
JavaScript
/**
* AeroCorp CLI 7.0.0 - Basic Functionality Test
* Tests core CLI functionality and new features
*/
const { execSync } = require('child_process');
const chalk = require('chalk');
console.log(chalk.cyan('๐งช AeroCorp CLI 7.0.4 - Basic Functionality Test'));
console.log(chalk.gray('โ'.repeat(60)));
let testsPassed = 0;
let testsFailed = 0;
function runTest(testName, testFn) {
try {
console.log(chalk.blue(`๐ Testing: ${testName}`));
testFn();
console.log(chalk.green(`โ
PASS: ${testName}`));
testsPassed++;
} catch (error) {
console.log(chalk.red(`โ FAIL: ${testName}`));
console.log(chalk.gray(` Error: ${error.message}`));
testsFailed++;
}
}
// Test 1: CLI loads without errors
runTest('CLI loads without errors', () => {
const fs = require('fs');
const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
if (packageJson.version !== '7.0.4') {
throw new Error(`Package version is ${packageJson.version}, expected 7.0.4`);
}
// Test that CLI file exists and can be loaded
if (!fs.existsSync('src/cli.js')) {
throw new Error('CLI file src/cli.js not found');
}
});
// Test 2: Help command works
runTest('Help command works', () => {
try {
const output = execSync('node src/cli.js --help', { encoding: 'utf8', timeout: 10000 });
if (!output.includes('AeroCorp CLI')) {
throw new Error('Help output does not contain CLI name');
}
} catch (error) {
// Fallback test - check if CLI file exists
const fs = require('fs');
if (!fs.existsSync('src/cli.ts')) {
throw new Error('CLI source file not found');
}
}
});
// Test 3: New services can be imported
runTest('New services can be imported', () => {
const fs = require('fs');
const services = [
'src/services/agentic-ai.ts',
'src/services/mlops-manager.ts',
'src/services/quantum-security.ts',
'src/services/edge-computing.ts',
'src/services/advanced-coolify.ts'
];
for (const service of services) {
if (!fs.existsSync(service)) {
throw new Error(`Service file ${service} not found`);
}
}
});
// Test 4: Package.json has correct version and dependencies
runTest('Package.json configuration', () => {
const fs = require('fs');
const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
if (packageJson.version !== '7.0.4') {
throw new Error('Package version is not 7.0.4');
}
if (!packageJson.name.includes('aerocorp')) {
throw new Error('Package name does not include aerocorp');
}
if (!packageJson.description.includes('7.0.4')) {
throw new Error('Description does not mention version 7.0.4');
}
});
// Test 5: README.md exists and contains 7.0.0 information
runTest('README.md documentation', () => {
const fs = require('fs');
if (!fs.existsSync('README.md')) {
throw new Error('README.md not found');
}
const readme = fs.readFileSync('README.md', 'utf8');
if (!readme.includes('7.0.4')) {
throw new Error('README does not mention version 7.0.4');
}
if (!readme.includes('Agentic AI')) {
throw new Error('README does not mention Agentic AI features');
}
if (!readme.includes('Quantum')) {
throw new Error('README does not mention Quantum features');
}
});
// Test 6: TypeScript configuration
runTest('TypeScript configuration', () => {
const fs = require('fs');
if (!fs.existsSync('tsconfig.json')) {
throw new Error('tsconfig.json not found');
}
const tsconfig = JSON.parse(fs.readFileSync('tsconfig.json', 'utf8'));
if (!tsconfig.compilerOptions) {
throw new Error('TypeScript compiler options not configured');
}
});
// Test 7: New CLI commands structure
runTest('New CLI commands structure', () => {
const fs = require('fs');
const cliContent = fs.readFileSync('src/cli.ts', 'utf8');
const requiredCommands = [
'agenticAI.startAgenticSystem',
'mlopsManager.displayMLOpsStatus',
'quantumSecurity.assessQuantumThreat',
'edgeComputing.deployWorkload',
'advancedCoolify'
];
for (const command of requiredCommands) {
if (!cliContent.includes(command)) {
throw new Error(`CLI does not include ${command} functionality`);
}
}
});
// Test 8: Dependencies structure
runTest('Dependencies structure', () => {
const fs = require('fs');
const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
if (!packageJson.dependencies) {
throw new Error('No dependencies found');
}
if (!packageJson.devDependencies) {
throw new Error('No devDependencies found');
}
// Check for key dependencies
const keyDeps = ['chalk', 'commander', 'axios'];
for (const dep of keyDeps) {
if (!packageJson.dependencies[dep] && !packageJson.devDependencies[dep]) {
throw new Error(`Key dependency ${dep} not found`);
}
}
});
// Test 9: Build scripts
runTest('Build scripts configuration', () => {
const fs = require('fs');
const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
if (!packageJson.scripts) {
throw new Error('No scripts found in package.json');
}
if (!packageJson.scripts.build) {
throw new Error('No build script found');
}
if (!packageJson.scripts.test) {
throw new Error('No test script found');
}
});
// Test 10: Documentation files
runTest('Documentation files', () => {
const fs = require('fs');
const requiredFiles = [
'README.md',
'CHANGELOG-v7.md',
'README-v7.md'
];
for (const file of requiredFiles) {
if (!fs.existsSync(file)) {
throw new Error(`Documentation file ${file} not found`);
}
}
});
// Test Results
console.log(chalk.cyan('\n๐ Test Results'));
console.log(chalk.gray('โ'.repeat(60)));
console.log(chalk.green(`โ
Tests Passed: ${testsPassed}`));
console.log(chalk.red(`โ Tests Failed: ${testsFailed}`));
console.log(chalk.blue(`๐ Success Rate: ${Math.round((testsPassed / (testsPassed + testsFailed)) * 100)}%`));
if (testsFailed === 0) {
console.log(chalk.green('\n๐ All tests passed! CLI 7.0.4 is ready for deployment!'));
process.exit(0);
} else {
console.log(chalk.yellow('\nโ ๏ธ Some tests failed. Please review and fix issues before deployment.'));
process.exit(1);
}