invoices
Version:
Methods for working with BOLT 11 payment requests
64 lines (58 loc) • 1.52 kB
JavaScript
const strictSame = require('node:assert').strict.deepStrictEqual;
const test = require('node:test');
const {throws} = require('node:assert').strict;
const mtokensAsHrp = require('./../../bolt11/mtokens_as_hrp');
const tests = [
{
args: {mtokens: '1'},
description: 'The smallest possible',
expected: '10p',
},
{
args: {mtokens: '10'},
description: 'Test smaller than a nano',
expected: '100p',
},
{
args: {mtokens: '100'},
description: 'Test smaller than a token',
expected: '1n',
},
{
args: {mtokens: '1000'}, description: 'Test nano tokens', expected: '10n',
},
{
args: {mtokens: '10000'}, description: 'Test more nano', expected: '100n',
},
{
args: {mtokens: '100000'}, description: 'Test micro', expected: '1u',
},
{
args: {mtokens: '100000000'}, description: 'Test milli', expected: '1m',
},
{
args: {mtokens: '100000000000'}, description: 'Test btc', expected: '1',
},
{
args: {mtokens: '123456789000'},
description: 'Test extended nano',
expected: '1234567890n',
},
{
args: {mtokens: '123450000000'},
description: 'Test extended micro',
expected: '1234500u',
},
{
args: {mtokens: '123400000000'},
description: 'Test extended milli',
expected: '1234m',
},
];
tests.forEach(({args, description, expected}) => {
return test(description, (t, end) => {
const {hrp} = mtokensAsHrp(args);
strictSame(hrp, expected, 'Hrp derived from mtokens');
return end();
});
});