UNPKG

lightning

Version:
82 lines (72 loc) 2.7 kB
const {deepStrictEqual} = require('node:assert').strict; const test = require('node:test'); const {throws} = require('node:assert').strict; const {rpcGroupSessionAsSession} = require('./../../lnd_responses'); const makeArgs = overrides => { const args = { combined_key: Buffer.alloc(32), local_public_nonces: Buffer.alloc(66), session_id: Buffer.alloc(32), taproot_internal_key: Buffer.alloc(32), }; Object.keys(overrides).forEach(k => args[k] = overrides[k]); return args; }; const tests = [ { args: null, description: 'A response is expected', error: 'ExpectedResponseForMuSig2SessionRequest', }, { args: makeArgs({combined_key: undefined}), description: 'A combined key is expected', error: 'ExpectedCombinedPublicKeyInMuSig2SessionResponse', }, { args: makeArgs({local_public_nonces: undefined}), description: 'Local public nonces are expected', error: 'ExpectedLocalPublicNoncesInMuSig2SessionResponse', }, { args: makeArgs({session_id: undefined}), description: 'A session id is expected', error: 'ExpectedMuSig2SigningSessionIdInSessionResponse', }, { args: makeArgs({taproot_internal_key: undefined}), description: 'A taproot internal key is expected', error: 'ExpectedTaprootInternalKeyInMuSig2SessionResponse', }, { args: makeArgs({}), description: 'Session data is returned', expected: { external_key: '0000000000000000000000000000000000000000000000000000000000000000', id: '0000000000000000000000000000000000000000000000000000000000000000', internal_key: '0000000000000000000000000000000000000000000000000000000000000000', nonce: '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', }, }, { args: makeArgs({taproot_internal_key: Buffer.alloc(0)}), description: 'Session data is returned for a script key', expected: { external_key: '0000000000000000000000000000000000000000000000000000000000000000', id: '0000000000000000000000000000000000000000000000000000000000000000', internal_key: undefined, nonce: '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', }, }, ]; tests.forEach(({args, description, error, expected}) => { return test(description, (t, end) => { if (!!error) { throws(() => rpcGroupSessionAsSession(args), new Error(error), 'Error'); } else { const res = rpcGroupSessionAsSession(args); deepStrictEqual(res, expected, 'Got expected result'); } return end(); }); });