Run playwright UI tests
This commit is contained in:
55
lib/server/taxonomy/metrics.test.ts
Normal file
55
lib/server/taxonomy/metrics.test.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import { describe, expect, it } from 'bun:test';
|
||||
import type { TaxonomyFact } from '@/lib/server/taxonomy/types';
|
||||
import { deriveTaxonomyMetrics } from '@/lib/server/taxonomy/metrics';
|
||||
|
||||
function fact(localName: string, value: number, overrides?: Partial<TaxonomyFact>): TaxonomyFact {
|
||||
return {
|
||||
conceptKey: `http://fasb.org/us-gaap/2024#${localName}`,
|
||||
qname: `us-gaap:${localName}`,
|
||||
namespaceUri: 'http://fasb.org/us-gaap/2024',
|
||||
localName,
|
||||
contextId: 'c1',
|
||||
unit: 'iso4217:USD',
|
||||
decimals: '-6',
|
||||
value,
|
||||
periodStart: '2025-01-01',
|
||||
periodEnd: '2025-12-31',
|
||||
periodInstant: null,
|
||||
dimensions: [],
|
||||
isDimensionless: true,
|
||||
sourceFile: 'abc_htm.xml',
|
||||
...overrides
|
||||
};
|
||||
}
|
||||
|
||||
describe('taxonomy metric derivation', () => {
|
||||
it('applies concept priority for canonical metrics and debt component fallback', () => {
|
||||
const metrics = deriveTaxonomyMetrics([
|
||||
fact('SalesRevenueNet', 500),
|
||||
fact('Revenues', 450),
|
||||
fact('NetIncomeLoss', 40),
|
||||
fact('Assets', 1000),
|
||||
fact('CashAndCashEquivalentsAtCarryingValue', 80),
|
||||
fact('DebtCurrent', 15),
|
||||
fact('LongTermDebtNoncurrent', 35)
|
||||
]);
|
||||
|
||||
expect(metrics).toEqual({
|
||||
revenue: 450,
|
||||
netIncome: 40,
|
||||
totalAssets: 1000,
|
||||
cash: 80,
|
||||
debt: 50
|
||||
});
|
||||
});
|
||||
|
||||
it('uses direct debt concept before computed debt fallback when available', () => {
|
||||
const metrics = deriveTaxonomyMetrics([
|
||||
fact('DebtCurrent', 15),
|
||||
fact('LongTermDebtNoncurrent', 35),
|
||||
fact('LongTermDebtAndCapitalLeaseObligations', 90)
|
||||
]);
|
||||
|
||||
expect(metrics.debt).toBe(90);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user