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) })