balanceofsatoshis
Version:
Lightning balance CLI
111 lines (104 loc) • 3.39 kB
JavaScript
const {deepEqual} = require('node:assert').strict;
const {rejects} = require('node:assert').strict;
const test = require('node:test');
const {getNodeInfoResponse} = require('./../fixtures');
const {listChannelsResponse} = require('./../fixtures');
const {listPeersResponse} = require('./../fixtures');
const {pendingChannelsResponse} = require('./../fixtures');
const {reconnect} = require('./../../network');
const makeLnd = ({channels, getNodeErr}) => {
return {
default: {
connectPeer: ({}, cbk) => cbk(),
disconnectPeer: ({}, cbk) => cbk(),
getNodeInfo: ({}, cbk) => cbk(getNodeErr, getNodeInfoResponse),
listChannels: ({}, cbk) => cbk(null, channels || listChannelsResponse),
listPeers: ({}, cbk) => cbk(null, listPeersResponse),
pendingChannels: ({}, cbk) => cbk(null, pendingChannelsResponse),
},
};
};
const tests = [
{
args: {},
description: 'An LND object is expected',
error: [400, 'ExpectedLndToReconnectToDisconnectedPeers'],
},
{
args: {lnd: makeLnd({}), retries: 1},
description: 'Peers are reconnected',
expected: [],
},
{
args: {
lnd: makeLnd({
channels: {
"channels": [{
"active": true,
"alias_scids": [],
"capacity": "1",
"chan_id": "1",
"chan_status_flags": "1",
"channel_point": "00:0",
"commit_fee": "1",
"commit_weight": "1",
"commitment_type": "LEGACY",
"csv_delay": "1",
"fee_per_kw": "1",
"initiator": true,
"lifetime": "1",
"local_balance": "1",
"local_chan_reserve_sat": "1",
"local_constraints": {
"chan_reserve_sat": "1",
"csv_delay": 1,
"dust_limit_sat": "1",
"max_accepted_htlcs": 1,
"max_pending_amt_msat": "1",
"min_htlc_msat": "1"
},
"num_updates": "1",
"pending_htlcs": [],
"private": false,
"remote_balance": "1",
"remote_chan_reserve_sat": "1",
"remote_constraints": {
"chan_reserve_sat": "1",
"csv_delay": 1,
"dust_limit_sat": "1",
"max_accepted_htlcs": 1,
"max_pending_amt_msat": "1",
"min_htlc_msat": "1"
},
"remote_pubkey": "010000000000000000000000000000000000000000000000000000000000000000",
"static_remote_key": true,
"thaw_height": 0,
"total_satoshis_received": "1",
"total_satoshis_sent": "1",
"unsettled_balance": "1",
"uptime": "1"
}],
},
}),
retries: 1,
},
description: 'Inactive channel peers are disconnected and reconnected',
expected: [],
},
{
args: {lnd: makeLnd({getNodeErr: 'err'}), retries: 1},
description: 'Error getting node means no reconnect',
expected: [],
},
];
tests.forEach(({args, description, error, expected}) => {
return test(description, async () => {
if (!!error) {
await rejects(reconnect(args), error, 'Got expected error');
} else {
const {reconnected} = await reconnect(args);
deepEqual(reconnected, expected, 'Got expected reconnections');
}
return;
});
});