ln-accounting
Version:
lnd accounting reports
74 lines (67 loc) • 1.84 kB
JavaScript
const {deepEqual} = require('node:assert').strict;
const test = require('node:test');
const {throws} = require('node:assert').strict;
const {chainReceivesAsRecords} = require('./../../harmony');
const date = new Date().toISOString();
const tests = [
{
args: {
channel_transaction_ids: ['funding_tx'],
transactions: [
{
created_at: new Date().toISOString(),
id: 'funding_tx',
is_confirmed: true,
is_outgoing: true,
output_addresses: ['out_address'],
tokens: 1,
},
{
created_at: date,
id: 'id',
is_confirmed: true,
is_outgoing: false,
output_addresses: ['address'],
tokens: 1,
},
]
},
description: 'Chain receives as records',
expected: {
records: [{
amount: 1,
category: 'chain_receives',
created_at: date,
id: 'id',
notes: 'Outputs to address',
type: 'transfer:deposit',
}],
},
},
{
args: null,
description: 'Arguments expected',
error: 'ExpectedArgumentsToMapReceiveRecords',
},
{
args: {},
description: 'Channel transaction ids array expected',
error: 'ExpectedChannelTransactionIdsArrayToMapReceiveRecords',
},
{
args: {channel_transaction_ids: []},
description: 'Transaction info array expected',
error: 'ExpectedTransactionsArrayToMapToReceiveRecords',
},
];
tests.forEach(({args, description, error, expected}) => {
return test(description, (t, end) => {
if (!!error) {
throws(() => chainReceivesAsRecords(args), new Error(error), 'Got err');
} else {
const {records} = chainReceivesAsRecords(args);
deepEqual(records, expected.records, 'Fees formatted as records');
}
return end();
});
});