test-project.js•2.35 kB
#!/usr/bin/env node
import { ProcessManager } from './src/process-manager.js';
import { LogManager } from './src/log-manager.js';
import { handleToolCall } from './src/tools/index.js';
// Configure for your specific project
const config = {
workingDirectory: '/Users/lorin/Projects/zlm/Vinoshipper',
gradleCommand: 'appRun',
port: 8080,
maxLogBufferSize: 1000,
logDir: './logs'
};
const processManager = new ProcessManager(config);
const logManager = new LogManager(config);
// Set up event logging
processManager.on('stdout', (data) => {
console.log('STDOUT:', data);
logManager.addLogEntry('stdout', data, 'INFO');
});
processManager.on('stderr', (data) => {
console.log('STDERR:', data);
logManager.addLogEntry('stderr', data, 'ERROR');
});
async function testProject() {
console.log(`Testing Gradle project at: ${config.workingDirectory}`);
try {
// Check status first
console.log('\n=== Checking Status ===');
const status = await handleToolCall('get_tomcat_status', {}, processManager, logManager);
console.log(JSON.stringify(status, null, 2));
// Start Tomcat
console.log('\n=== Starting Tomcat ===');
const startResult = await handleToolCall('start_tomcat', {
gradle_command: 'appRun',
working_directory: config.workingDirectory
}, processManager, logManager);
console.log(JSON.stringify(startResult, null, 2));
// Wait a bit then check logs
setTimeout(async () => {
console.log('\n=== Getting Logs ===');
const logs = await handleToolCall('get_logs', { lines: 20 }, processManager, logManager);
console.log(JSON.stringify(logs, null, 2));
console.log('\n=== Final Status ===');
const finalStatus = await handleToolCall('get_tomcat_status', {}, processManager, logManager);
console.log(JSON.stringify(finalStatus, null, 2));
console.log('\nPress Ctrl+C to stop Tomcat and exit');
}, 10000);
} catch (error) {
console.error('Test failed:', error);
}
}
// Handle graceful shutdown
process.on('SIGINT', async () => {
console.log('\nShutting down...');
try {
await handleToolCall('stop_tomcat', {}, processManager, logManager);
console.log('Tomcat stopped');
} catch (error) {
console.error('Error stopping:', error);
}
process.exit(0);
});
testProject();