Files

35 lines
1.8 KiB
JavaScript
Raw Permalink Normal View History

2026-10-29 11:57:29 +01:00
// 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 });
});
});