17 lines
876 B
TypeScript
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');
|
|
});
|
|
});
|