UNPKG

lightning

Version:
65 lines (58 loc) 1.89 kB
const {rejects} = require('node:assert').strict; const test = require('node:test'); const {settleHodlInvoice} = require('./../../../'); const secret = Buffer.alloc(32).toString('hex'); const makeLnd = ({err}) => { return {invoices: {settleInvoice: ({}, cbk) => cbk(err)}}; }; const tests = [ { args: {}, description: 'LND is required to settle invoice', error: [400, 'ExpectedInvoicesLndToSettleHodlInvoice'], }, { args: {lnd: makeLnd({})}, description: 'A secret is required to settle invoice', error: [400, 'ExpectedPaymentPreimageToSettleHodlInvoice'], }, { args: {lnd: makeLnd({}), secret: 'secret'}, description: 'A hex secret is required to settle an invoice', error: [400, 'ExpectedPaymentPreimageToSettleHodlInvoice'], }, { args: {lnd: makeLnd({}), secret: '00'}, description: 'The preimage must be a preimage length', error: [400, 'ExpectedPaymentPreimageToSettleHodlInvoice'], }, { args: {secret, lnd: makeLnd({err: {details: 'invoice still open'}})}, description: 'Invoice must be held to settle', error: [402, 'CannotSettleHtlcBeforeHtlcReceived'], }, { args: {secret, lnd: makeLnd({err: {details: 'unable to locate invoice'}})}, description: 'A valid secret is required to settle', error: [404, 'SecretDoesNotMatchAnyExistingHodlInvoice'], }, { args: {secret, lnd: makeLnd({err: 'err'})}, description: 'Errors are passed back', error: [503, 'UnexpectedErrorWhenSettlingHodlInvoice', {err: 'err'}], }, { args: {secret, lnd: makeLnd({})}, description: 'Errors are passed back', }, ]; tests.forEach(({args, description, error}) => { return test(description, async () => { if (!!error) { await rejects(() => settleHodlInvoice(args), error, 'Got error'); } else { await settleHodlInvoice(args); } return; }); });