feat(payments): track household payment confirmations

This commit is contained in:
2026-03-10 17:00:45 +04:00
parent fb85219409
commit 1988521931
31 changed files with 4795 additions and 19 deletions

View File

@@ -0,0 +1,36 @@
import { describe, expect, test } from 'bun:test'
import { parsePaymentConfirmationMessage } from './payment-confirmation-parser'
describe('parsePaymentConfirmationMessage', () => {
test('detects rent confirmation without explicit amount', () => {
const result = parsePaymentConfirmationMessage('за жилье закинул', 'GEL')
expect(result.kind).toBe('rent')
expect(result.explicitAmount).toBeNull()
expect(result.reviewReason).toBeNull()
})
test('detects utility confirmation with explicit default-currency amount', () => {
const result = parsePaymentConfirmationMessage('оплатил газ 120', 'GEL')
expect(result.kind).toBe('utilities')
expect(result.explicitAmount?.amountMinor).toBe(12000n)
expect(result.explicitAmount?.currency).toBe('GEL')
expect(result.reviewReason).toBeNull()
})
test('keeps multi-member confirmations for review', () => {
const result = parsePaymentConfirmationMessage('перевел за Кирилла и себя', 'GEL')
expect(result.kind).toBeNull()
expect(result.reviewReason).toBe('multiple_members')
})
test('keeps generic done messages for review', () => {
const result = parsePaymentConfirmationMessage('готово', 'GEL')
expect(result.kind).toBeNull()
expect(result.reviewReason).toBe('kind_ambiguous')
})
})