feat: add dashboard pricing metrics
Quality / test (push) Canceled after 0s

This commit is contained in:
2026-09-09 16:39:57 -04:00
parent ae1bffeaa0
commit 94227c477a
5 changed files with 31 additions and 3 deletions
@@ -6,10 +6,11 @@ import { createDashboardService } from '../../src/modules/dashboard/services/das
test('aggregates seller dashboard counts and financial totals', async () => {
const service = createDashboardService({
productService: { async listBySellerId() { return [{ id: 'product-1' }]; } },
inventoryItemService: { async listBySellerId() { return [{ status: 'ACTIVE' }, { status: 'SOLD' }]; } },
inventoryItemService: { async listBySellerId() { return [{ id: 'item-1', status: 'ACTIVE' }, { id: 'item-2', status: 'SOLD' }]; } },
listingService: { async list() { return [{ status: 'AVAILABLE', askingPriceMinor: 2500, imageCount: 1 }]; } },
saleService: { async list() { return [{ status: 'COMPLETED', netProceedsMinor: 2200, profitMinor: 700 }]; } },
acquisitionService: { async list() { return [{ costBasisMinor: 1500 }]; } },
pricingRepository: { async listLatestValuationsForSeller() { return [{ inventoryItemId: 'item-1', valueMinor: 2800, calculatedAt: new Date() }]; } },
});
const dashboard = await service.get({ sellerId: 'seller-1' });
@@ -22,11 +23,14 @@ test('aggregates seller dashboard counts and financial totals', async () => {
sales: 1,
acquisitions: 1,
missingImages: 0,
missingPricing: 1,
stalePricing: 0,
});
assert.deepEqual(dashboard.financials, {
totalAcquisitionCostMinor: 1500,
totalAskingValueMinor: 2500,
totalNetSaleProceedsMinor: 2200,
totalProfitMinor: 700,
totalMarketValueMinor: 2800,
});
});