// Generated, do not edit. sha256:01bde5d75892fc5a6a8c97160161ea34bf3bdb955dc532c9061e112dd8b33d86 import { describe, it } from 'node:test'; import assert from 'node:assert/strict'; import { bulkPlan, bulkCounts } from '../../client/actions/reconcile-bulk.js'; const ln = (id, extra = {}) => ({ id, tx_layer: 'lightning', tx_kind: null, transactionHash: `hash-${id}`, direction: 'out', ...extra }); describe('bulkPlan', () => { it('een gewone lightning-betaling wordt een aankoop of verkoop', () => { assert.deepEqual(bulkPlan([ln(1), ln(2, { direction: 'in' })]).map(s => s.action), ['trade', 'trade']); }); it('een betaling aan uzelf en een kanaal (ook on-chain) blijven binnen het account', () => { const plan = bulkPlan([ln(1, { tx_kind: 'self' }), { id: 2, tx_layer: 'onchain', tx_kind: 'channel', transactionHash: 'ab' }]); assert.deepEqual(plan.map(s => s.action), ['internal', 'internal']); }); it('een forward wordt rente, en een on-chain txid die toevallig zo begint niet', () => { const plan = bulkPlan([ln(1, { transactionHash: 'fwd:1:2:3', direction: 'in' }), { id: 2, tx_layer: 'onchain', tx_kind: null, transactionHash: 'fwd:x' }]); assert.deepEqual(plan.map(s => [s.action, s.reason]), [['interest', undefined], ['skip', 'onchain']]); }); it('slaat een gewone on-chain beweging over, met de reden', () => { const plan = bulkPlan([{ id: 2, tx_layer: 'onchain', tx_kind: null, transactionHash: 'ab' }]); assert.deepEqual(plan.map(s => [s.action, s.reason]), [['skip', 'onchain']]); }); it('telt per soort voor de bevestiging', () => { const plan = bulkPlan([ln(1), ln(2), ln(3, { tx_kind: 'self' }), ln(4, { transactionHash: 'fwd:x' }), { id: 5, tx_layer: 'onchain', tx_kind: null }]); assert.deepEqual(bulkCounts(plan), { internal: 1, interest: 1, trade: 2, onchain: 1 }); }); });