ln-accounting
Version:
lnd accounting reports
78 lines (71 loc) • 1.73 kB
JavaScript
const {deepEqual} = require('node:assert').strict;
const test = require('node:test');
const {throws} = require('node:assert').strict;
const {invoicesAsRecords} = require('./../../harmony');
const date = new Date().toISOString();
const tests = [
{
args: {
invoices: [{
confirmed_at: date,
created_at: date,
description: 'description',
id: 'id',
is_confirmed: true,
payments: [],
received: 1,
}],
},
description: 'Invoices as records',
expected: {
records: [{
amount: 1,
category: 'invoices',
created_at: date,
id: 'id',
notes: 'description',
type: 'income',
}],
},
},
{
args: {
invoices: [{
confirmed_at: date,
created_at: date,
description: '',
id: 'id',
is_confirmed: true,
payments: [{messages: [{type: '5482373484'}]}],
received: 1,
}],
},
description: 'Push payment is represented',
expected: {
records: [{
amount: 1,
category: 'invoices',
created_at: date,
id: 'id',
notes: '[Push Payment]',
type: 'income',
}],
},
},
{
args: {},
description: 'Expects array of invoices',
error: 'ExpectedArrayOfInvoicesToMapToAccountingRecords',
}
];
tests.forEach(({args, description, error, expected}) => {
return test(description, (t, end) => {
if (!!error) {
throws(() => invoicesAsRecords(args), new Error(error), 'Got error');
} else {
const {records} = invoicesAsRecords(args);
deepEqual(records, expected.records, 'Forwards formatted as records');
}
return end();
});
});