#!/usr/bin/env node
import { OdooConnection } from './build/odoo-connection.js';
import { loadEnvConfig, hasCompleteConfig } from './build/config.js';
async function testConnection() {
console.log('Loading configuration from .env...');
const config = loadEnvConfig();
console.log('Configuration loaded:');
console.log(' Host:', config.host);
console.log(' Database:', config.database);
console.log(' Username:', config.username);
console.log(' API Key:', config.apiKey ? '***' + config.apiKey.slice(-4) : 'not set');
console.log(' Protocol:', config.protocol);
console.log(' Port:', config.port || 'default');
console.log();
if (!hasCompleteConfig(config)) {
console.error('❌ Configuration incomplete. Missing required fields.');
process.exit(1);
}
console.log('✅ Configuration is complete');
console.log();
console.log('Attempting to connect to Odoo...');
try {
const connection = new OdooConnection({
host: config.host,
database: config.database,
username: config.username,
apiKey: config.apiKey,
port: config.port,
protocol: config.protocol,
});
const uid = await connection.authenticate();
console.log('✅ Successfully connected!');
console.log(' User ID:', uid);
console.log();
// Test version
const version = await connection.version();
console.log('📦 Odoo Version:', version.server_version);
console.log();
// Test getting user info
const userInfo = await connection.read('res.users', [uid], ['name', 'login']);
console.log('👤 User Info:', userInfo[0]);
console.log();
console.log('🎉 All tests passed!');
} catch (error) {
console.error('❌ Connection failed:', error.message);
process.exit(1);
}
}
testConnection();