UNPKG

lightning

Version:
99 lines (88 loc) 2.94 kB
const {deepStrictEqual} = require('node:assert').strict; const {rejects} = require('node:assert').strict; const test = require('node:test'); const {getPathfindingSettings} = require('./../../../lnd_methods'); const makeLnd = ({config, empty, err, overrides}) => { if (!!empty) { return {router: {getMissionControlConfig: ({}, cbk) => cbk()}}; } const res = { config: { half_life_seconds: 1, hop_probability: 0.6, maximum_payment_results: 10, weight: 0.5, }, }; Object.keys(overrides || {}).forEach(key => res[key] = overrides[key]); Object.keys(config || {}).forEach(key => res.config[key] = config[key]); return {router: {getMissionControlConfig: ({}, cbk) => cbk(err, res)}}; }; const tests = [ { args: {}, description: 'LND is expected to get pathfinding settings', error: [400, 'ExpectedLndToGetPathfindingSettings'], }, { args: {lnd: makeLnd({err: {details: 'unknown method'}})}, description: 'An unsupported error is returned', error: [501, 'GetMissionControlConfigMethodNotSupported'], }, { args: {lnd: makeLnd({err: 'err'})}, description: 'An error is returned', error: [503, 'UnexpectedErrorGettingPathSettings', {err: 'err'}], }, { args: {lnd: makeLnd({empty: true})}, description: 'A response is expected', error: [503, 'ExpectedPathfindingSettingsResponse'], }, { args: {lnd: makeLnd({overrides: {config: undefined}})}, description: 'A config is expected', error: [503, 'ExpectedPathfindingSettingsConfigInResponse'], }, { args: {lnd: makeLnd({config: {half_life_seconds: undefined}})}, description: 'Half life seconds are expected', error: [503, 'ExpectedHalfLifeSecondsInSettingsResponse'], }, { args: {lnd: makeLnd({config: {hop_probability: undefined}})}, description: 'Hop probability is expected', error: [503, 'ExpectedAssumedHopPriorityInSettingsResponse'], }, { args: {lnd: makeLnd({config: {maximum_payment_results: undefined}})}, description: 'Max payments are expected', error: [503, 'ExpectedMaximumPaymentResultsInConfigResponse'], }, { args: {lnd: makeLnd({config: {weight: undefined}})}, description: 'Node reputation weight is expected', error: [503, 'ExpectedWeightInSettingsConfigResponse'], }, { args: {lnd: makeLnd({})}, description: 'Pathfinding configuration is returned', expected: { baseline_success_rate: 600000, max_payment_records: 10, node_ignore_rate: 500000, penalty_half_life_ms: 1000, }, }, ]; tests.forEach(({args, description, error, expected}) => { return test(description, async () => { if (!!error) { await rejects(() => getPathfindingSettings(args), error, 'Got error'); } else { const res = await getPathfindingSettings(args); deepStrictEqual(res, expected, 'Got expected result'); } return; }); });