20 lines
885 B
TypeScript
20 lines
885 B
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { buildHistoryLedger, aggregateHistoryLedger } from './tradeHistoryLedger';
|
|
|
|
describe('Trade History Ledger Diagnostics', () => {
|
|
it('aggregates a simple row correctly', () => {
|
|
const now = Date.now();
|
|
const dbRows = [
|
|
{ id: 'h1', profile_id: 'p1', timestamp: now - 60000, pnl: 50, side: 'SELL', symbol: 'BTC', entry_price: 100, exit_price: 110, size: 5, reason: 'exit' }
|
|
];
|
|
const ledger = buildHistoryLedger({ dbRows, includeRealtime: false });
|
|
expect(ledger).toHaveLength(1);
|
|
expect(ledger[0].pnl).toBe(50);
|
|
|
|
const agg = aggregateHistoryLedger(ledger);
|
|
expect(agg.totalPnl).toBe(50);
|
|
expect(agg.byProfile['p1']).toBeDefined();
|
|
expect(agg.byProfile['p1'].lastClosedTradeAt).toBe(ledger[0].timestampMs);
|
|
});
|
|
});
|