import assert from 'node:assert/strict'; import test from 'node:test'; import { createDashboardService } from '../../src/modules/dashboard/services/dashboard-service.js'; test('aggregates seller dashboard counts and financial totals', async () => { const service = createDashboardService({ productService: { async listBySellerId() { return [{ id: 'product-1' }]; } }, 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() }]; } }, pricingRefreshJobRepository: { async countFailedForSeller() { return 2; } }, }); const dashboard = await service.get({ sellerId: 'seller-1' }); assert.deepEqual(dashboard.counts, { products: 1, inventory: 2, activeInventory: 1, soldInventory: 1, availableListings: 1, sales: 1, acquisitions: 1, missingImages: 0, missingPricing: 1, stalePricing: 0, failedPricingJobs: 2, }); assert.deepEqual(dashboard.financials, { totalAcquisitionCostMinor: 1500, totalAskingValueMinor: 2500, totalNetSaleProceedsMinor: 2200, totalProfitMinor: 700, totalMarketValueMinor: 2800, }); });