Files
FEDEO/backend/tests/bankBalances.test.ts
florianfederspiel 0777315d1d
All checks were successful
Build and Release FEDEO / verify (push) Successful in 1m5s
Build and Release FEDEO / build-and-release (push) Successful in 6m21s
feat(mcp): Archivierte Einträge wiederherstellen und Kontostände abfragen
- archive.entities.list / archive.entities.restore für alle per MCP archivierbaren Entitäten mit Berechtigungsprüfung je Entität und Historieneintrag
- accounting.bank_accounts.balances liefert Stände von Bankkonten und Kassenbüchern, optional zu einem Stichtag

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 14:28:05 +01:00

25 lines
1.2 KiB
TypeScript

import assert from "node:assert/strict"
import test from "node:test"
import { calculateAccountBalance, CASHBOOK_BANK_ID } from "../src/modules/bank-balances.service"
const syncedAt = new Date("2026-10-20T08:00:00Z")
const bank = { id: 1, name: "Giro", iban: "DE00", ownerName: null, bankId: "bank", datevNumber: "1200", balance: 1000.1, expired: false, syncedAt }
const cashbook = { ...bank, id: 2, name: "Kasse", iban: "CASH-1", bankId: CASHBOOK_BANK_ID, datevNumber: "1000", balance: 50 }
test("bank accounts report the synced balance and revert later statements for a past date", () => {
assert.equal(calculateAccountBalance(bank, 0, null).balance, 1000.1)
assert.equal(calculateAccountBalance(bank, 0, null).source, "bank_sync")
const past = calculateAccountBalance(bank, -200.05, "2026-10-01")
assert.equal(past.balance, 1200.15)
assert.equal(past.syncedBalance, 1000.1)
assert.equal(past.source, "bank_sync_reconstructed")
})
test("cashbooks add their bookings to the opening balance", () => {
const result = calculateAccountBalance(cashbook, 12.345, null)
assert.equal(result.type, "cashbook")
assert.equal(result.balance, 62.35)
assert.equal(result.openingBalance, 50)
assert.equal(result.iban, null)
})