import { presentCashFlow } from './transaction-amount'; describe('presentCashFlow', () => { it.each([ { amount: 12, type: 0, context: 'player' as const, expected: { direction: 'inflow', amount: 12, sign: '+' }, }, { amount: -12, type: 'payment', context: 'player' as const, expected: { direction: 'outflow', amount: 12, sign: '−' }, }, { amount: 8.5, type: { id: 1, name: 'credit' }, context: 'team' as const, expected: { direction: 'inflow', amount: 8.5, sign: '+' }, }, { amount: 8.5, type: { id: 14, name: 'expense' }, context: 'team' as const, expected: { direction: 'outflow', amount: 8.5, sign: '−' }, }, { amount: 7, type: 'fine', context: 'player' as const, expected: { direction: 'neutral', amount: 7, sign: '' }, }, { amount: 6, type: 'credit', context: 'player' as const, expected: { direction: 'neutral', amount: 6, sign: '' }, }, { amount: 5, type: 'levy', context: 'player' as const, expected: { direction: 'neutral', amount: 5, sign: '' }, }, { amount: 4, type: 'fee', context: 'player' as const, expected: { direction: 'neutral', amount: 4, sign: '' }, }, { amount: 3, type: 'payment', context: 'team' as const, expected: { direction: 'neutral', amount: 3, sign: '' }, }, { amount: 2, type: 'expense', context: 'player' as const, expected: { direction: 'neutral', amount: 2, sign: '' }, }, { amount: -7, type: 'unknown', context: 'player' as const, expected: { direction: 'neutral', amount: 7, sign: '' }, }, { amount: -9, type: 'unknown', context: 'team' as const, expected: { direction: 'neutral', amount: 9, sign: '' }, }, ])( 'presents $context $type transactions with their cash-flow direction', ({ amount, type, context, expected }) => { expect(presentCashFlow(amount, type, context)).toEqual(expected); }, ); });