#!/usr/bin/env node
/**
* Test script for German company integration
*/
const {
searchGermanCompaniesByName,
getGermanCompanyByLEI,
getGermanCompanyFilings,
getDAX40Companies
} = require('../src/germany-api.js');
async function runGermanTests() {
console.log('š©šŖ Testing German Company Integration\n');
console.log('=' .repeat(60));
try {
// Test 1: Get DAX 40 companies
console.log('\nš Test 1: Get DAX 40 Companies');
console.log('-'.repeat(60));
const dax40 = await getDAX40Companies();
console.log(`Found ${dax40.total} major German companies`);
console.log('\nFirst 3 companies:');
dax40.companies.slice(0, 3).forEach((company, idx) => {
console.log(` ${idx + 1}. ${company.name}`);
console.log(` LEI: ${company.lei}`);
console.log(` Ticker: ${company.ticker}`);
});
// Test 2: Get company by LEI (Volkswagen)
console.log('\n\nš Test 2: Get Volkswagen by LEI');
console.log('-'.repeat(60));
const vw = dax40.companies[0];
try {
const companyInfo = await getGermanCompanyByLEI(vw.lei);
console.log('Company:', JSON.stringify(companyInfo, null, 2));
} catch (error) {
console.log('ā ļø LEI lookup failed:', error.message);
console.log('Note: This is expected if the LEI in our list is outdated');
}
// Test 3: Search by company name
console.log('\n\nš Test 3: Search for "Siemens"');
console.log('-'.repeat(60));
const searchResults = await searchGermanCompaniesByName('Siemens', { limit: 3 });
console.log(`Found ${searchResults.total_found} companies`);
if (searchResults.companies.length > 0) {
console.log('\nTop results:');
searchResults.companies.forEach((company, idx) => {
console.log(` ${idx + 1}. ${company.name}`);
console.log(` LEI: ${company.lei}`);
console.log(` City: ${company.city}`);
});
}
// Test 4: Search for "Volkswagen"
console.log('\n\nš Test 4: Search for "Volkswagen"');
console.log('-'.repeat(60));
const vwSearch = await searchGermanCompaniesByName('Volkswagen', { limit: 3 });
console.log(`Found ${vwSearch.total_found} companies`);
if (vwSearch.companies.length > 0) {
console.log('\nResults:');
vwSearch.companies.forEach((company, idx) => {
console.log(` ${idx + 1}. ${company.name}`);
console.log(` LEI: ${company.lei}`);
console.log(` Status: ${company.status}`);
});
// Test 5: Get filings info for first result
if (vwSearch.companies[0].lei) {
console.log('\n\nš Test 5: Get filing information for Volkswagen');
console.log('-'.repeat(60));
const filingsInfo = await getGermanCompanyFilings(vwSearch.companies[0].lei);
console.log('Filings info:', JSON.stringify(filingsInfo, null, 2));
}
}
console.log('\n' + '='.repeat(60));
console.log('ā
All German integration tests completed!');
console.log('='.repeat(60));
console.log('\nš” Key Takeaways:');
console.log(' ⢠DAX 40 companies accessible with LEIs');
console.log(' ⢠GLEIF search working for German companies');
console.log(' ⢠Filing access requires manual lookup at bundesanzeiger.de');
console.log(' ⢠Full integration awaits ESAP (2027)');
} catch (error) {
console.error('\nā Test failed:', error.message);
console.error('Stack:', error.stack);
process.exit(1);
}
}
runGermanTests();