26 lines
994 B
TypeScript
26 lines
994 B
TypeScript
import assert from 'node:assert/strict';
|
|
import { getEffectiveAmount, getNetAmount } from './analyticsSemantics';
|
|
|
|
assert.equal(getNetAmount('expense', [
|
|
{ amountSigned: -10_000, commission: 0 },
|
|
{ amountSigned: 4_000, commission: 0 },
|
|
]), 6_000, 'возврат уменьшает расход своей категории');
|
|
|
|
assert.equal(getNetAmount('income', [
|
|
{ amountSigned: 20_000, commission: 0 },
|
|
{ amountSigned: -5_000, commission: 0 },
|
|
]), 15_000, 'корректировка уменьшает доход');
|
|
|
|
assert.equal(getNetAmount('transfer', [
|
|
{ amountSigned: -10_000, commission: 0 },
|
|
{ amountSigned: 10_000, commission: 0 },
|
|
]), 0, 'перевод не является доходом или расходом');
|
|
|
|
assert.equal(
|
|
getEffectiveAmount({ amountSigned: 0, commission: 500, description: 'Зачисление кэшбэка' }),
|
|
500,
|
|
'кэшбэк учитывается как поступление',
|
|
);
|
|
|
|
console.log('analytics semantics: OK');
|