import { CompanyDatabase } from './build/database/db.js';
import { BrregClient } from './build/apis/brreg.js';
console.log('π§ͺ Testing Database Saving Functionality');
console.log('ββββββββββββββββββββββββββββββββββββββ\n');
const db = new CompanyDatabase();
const brreg = new BrregClient();
// Test company org number
const testOrgNr = '984562861';
console.log(`π Checking financial data for company ${testOrgNr}...\n`);
// Get company info
let company = db.getCompany(testOrgNr);
if (!company) {
console.log('Company not in database, fetching from Brreg...');
const brregCompany = await brreg.getCompany(testOrgNr);
if (brregCompany) {
db.insertOrUpdateCompany({
org_nr: brregCompany.organisasjonsnummer,
name: brregCompany.navn,
organization_form: brregCompany.organisasjonsform?.beskrivelse,
nace_code: brregCompany.naeringskode1?.kode,
employees_count: brregCompany.antallAnsatte,
last_updated: new Date().toISOString()
});
company = db.getCompany(testOrgNr);
}
}
if (company) {
console.log(`β
Company: ${company.name}`);
console.log(` Org nr: ${company.org_nr}`);
console.log(` Industry: ${company.nace_description || company.nace_code || 'Unknown'}\n`);
}
// Check what financial data is in the database
console.log('πΎ Checking database for financial snapshots...');
try {
const stmt = db.db.prepare(`
SELECT year, revenue, profit, assets, equity, source, fetched_at
FROM financial_snapshots
WHERE org_nr = ?
ORDER BY year DESC
`);
const financialData = stmt.all(testOrgNr);
if (financialData.length === 0) {
console.log('β No financial data found in database\n');
console.log('π‘ To add data:');
console.log(' 1. Run auto_scrape_financials through MCP');
console.log(' 2. Or run: node test-browser-scraper.js');
} else {
console.log(`β
Found ${financialData.length} years of financial data:\n`);
console.log('ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ');
console.log('Year | Revenue | Profit | Source');
console.log('ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ');
for (const row of financialData) {
const revenue = row.revenue ? (row.revenue/1000000).toFixed(1) + 'M' : 'N/A';
const profit = row.profit ? (row.profit/1000000).toFixed(1) + 'M' : 'N/A';
console.log(`${row.year} | ${revenue.padEnd(12)} | ${profit.padEnd(12)} | ${row.source}`);
}
console.log('ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ');
// Show summary
const yearsWithData = financialData.filter(d => d.revenue !== null || d.profit !== null);
const sources = [...new Set(financialData.map(d => d.source))];
console.log('\nπ Summary:');
console.log(` Total years: ${financialData.length}`);
console.log(` Years with data: ${yearsWithData.length}`);
console.log(` Data sources: ${sources.join(', ')}`);
// Check most recent entry
const latest = financialData[0];
console.log('\nπ Latest entry details:');
console.log(` Year: ${latest.year}`);
console.log(` Revenue: ${latest.revenue ? (latest.revenue/1000000).toFixed(1) + 'M NOK' : 'Not available'}`);
console.log(` Profit: ${latest.profit ? (latest.profit/1000000).toFixed(1) + 'M NOK' : 'Not available'}`);
console.log(` Assets: ${latest.assets ? (latest.assets/1000000).toFixed(1) + 'M NOK' : 'Not available'}`);
console.log(` Equity: ${latest.equity ? (latest.equity/1000000).toFixed(1) + 'M NOK' : 'Not available'}`);
console.log(` Source: ${latest.source}`);
console.log(` Saved at: ${latest.fetched_at}`);
}
} catch (error) {
console.error('β Database query failed:', error);
}
console.log('\nβ
Database test complete!');
// Close database
db.close();