Files
expense-control/api/tests/statistics.service.test.ts
Mateusz Gruszczyński 9a6e77a5fc first commit
2026-04-05 13:40:27 +02:00

17 lines
876 B
TypeScript

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');
});
});