test-node-compatibility.jsโข2.72 kB
#!/usr/bin/env node
/**
* Test Node.js compatibility for MCP ADR Analysis Server
* This script tests basic functionality across different Node.js versions
*/
import { createRequire } from 'module';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
import { readFileSync } from 'fs';
const require = createRequire(import.meta.url);
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
console.log('๐ Testing Node.js Compatibility');
console.log('================================');
// Test 1: Node.js version
console.log(`Node.js version: ${process.version}`);
console.log(`Platform: ${process.platform}`);
console.log(`Architecture: ${process.arch}`);
// Test 2: ESM support
console.log('\nโ
ESM imports working');
// Test 3: Package.json validation
try {
const packagePath = join(__dirname, '..', 'package.json');
const packageJson = JSON.parse(readFileSync(packagePath, 'utf8'));
console.log(`โ
Package: ${packageJson.name}@${packageJson.version}`);
console.log(`โ
Type: ${packageJson.type}`);
} catch (error) {
console.error('โ Package.json error:', error.message);
process.exit(1);
}
// Test 4: TypeScript compilation check
try {
const distPath = join(__dirname, '..', 'dist', 'src', 'index.js');
const compiledCode = readFileSync(distPath, 'utf8');
if (compiledCode.includes('export')) {
console.log('โ
TypeScript ESM compilation working');
} else {
console.log('โ ๏ธ TypeScript compilation may have issues');
}
} catch (error) {
console.log('โ ๏ธ Compiled code not found (run npm run build first)');
}
// Test 5: Basic module loading
try {
const { loadConfig } = await import('../dist/src/utils/config.js');
console.log('โ
Module loading working');
// Test configuration loading
const config = loadConfig();
console.log(`โ
Configuration loaded: ${config.projectPath}`);
} catch (error) {
console.error('โ Module loading error:', error.message);
process.exit(1);
}
// Test 6: Zod validation
try {
const { z } = await import('zod');
const testSchema = z.object({
test: z.string()
});
testSchema.parse({ test: 'hello' });
console.log('โ
Zod validation working');
} catch (error) {
console.error('โ Zod validation error:', error.message);
process.exit(1);
}
// Test 7: MCP SDK compatibility
try {
const { Server } = await import('@modelcontextprotocol/sdk/server/index.js');
console.log('โ
MCP SDK import working');
} catch (error) {
console.error('โ MCP SDK error:', error.message);
process.exit(1);
}
console.log('\n๐ All Node.js compatibility tests passed!');
console.log(`โ
Node.js ${process.version} is fully compatible`);