import { describe, expect, it } from 'vitest'; import { aggregateStatistics, buildBucketLabel } from '../src/services/statistics.service.js'; describe('statistics.service', () => { it('builds quarter labels', () => { expect(buildBucketLabel('2026-04-05', 'quarter')).toBe('2026-Q2'); }); it('aggregates totals', () => { const result = aggregateStatistics([ { id: '1', amount: 100, expenseDate: '2026-04-01', categoryId: 'a', categoryName: 'Rachunki' }, { id: '2', amount: 50, expenseDate: '2026-04-10', categoryId: 'b', categoryName: 'Zakupy' }, { id: '3', amount: 25, expenseDate: '2026-05-01', categoryId: 'a', categoryName: 'Rachunki' } ], 'month'); expect(result.total).toBe(175); expect(result.count).toBe(3); expect(result.average).toBeCloseTo(58.33, 2); expect(result.topCategory?.categoryName).toBe('Rachunki'); }); });