balanceofsatoshis
Version:
Lightning balance CLI
64 lines (53 loc) • 1.47 kB
JavaScript
const {equal} = require('node:assert').strict;
const test = require('node:test');
const {throws} = require('node:assert').strict;
const {balanceFromTokens} = require('./../../balances');
const tests = [
// No tokens
{
args: {},
description: 'Nothing is passed',
error: 'ExpectedTokensToCalculateBalance',
},
// Normal balance
{
args: {tokens: [1, 2, 3, 4, 5]},
description: 'Tokens are summed to a balance',
expected: {balance: 15},
},
// Balance above watermark
{
args: {above: 10, tokens: [1, 2, 3, 4, 5]},
description: 'Tokens are summed to a balance',
expected: {balance: 5},
},
// No balance above watermark
{
args: {above: 10, tokens: [1]},
description: 'Tokens are summed to a balance',
expected: {balance: 0},
},
// Balance below watermark
{
args: {below: 25, tokens: [1, 2, 3, 4, 5]},
description: 'Tokens are summed to a balance',
expected: {balance: 10},
},
// No balance below watermark
{
args: {below: 25, tokens: [25]},
description: 'Tokens are summed to a balance',
expected: {balance: 0},
},
];
tests.forEach(({args, description, error, expected}) => {
return test(description, (t, end) => {
if (!!error) {
throws(() => balanceFromTokens(args), new Error(error));
} else {
const balance = balanceFromTokens(args);
equal(balance, expected.balance, 'Balance is calculated');
}
return end();
});
});