From: Chris Duncan Date: Fri, 8 Aug 2025 12:43:29 +0000 (-0700) Subject: Add test coverage for wallet balance conversion between units. X-Git-Tag: v0.10.5~43^2~28 X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=1869586377b350f3fef10c42202b543c0b340f75;p=libnemo.git Add test coverage for wallet balance conversion between units. --- diff --git a/test/test.blocks.mjs b/test/test.blocks.mjs index b8b2e09..47a0a62 100644 --- a/test/test.blocks.mjs +++ b/test/test.blocks.mjs @@ -32,26 +32,60 @@ await Promise.all([ }) await test('allow zero balances', async () => { - const block = new Block( - ADDRESS_0, '9007199254740991', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2) + const block = new Block(ADDRESS_0, '9007199254740991', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2) .send(ADDRESS_1, '9007199254740991') assert.notEqual(block.balance, 0) assert.equal(block.balance, BigInt(0)) }) - await test('subtract balance from send block correctly', async () => { - const block = new Block( - ADDRESS_0, '3000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2) + await test('subtract nano balance as string from send block correctly', async () => { + const block = new Block(ADDRESS_0, '3000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2) + .send(ADDRESS_1, '2', 'NANO') + assert.equal(block.balance, 1000000000000000000000000000000n) + }) + + await test('subtract nano balance as number from send block correctly', async () => { + const block = new Block(ADDRESS_0, '3000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2) + .send(ADDRESS_1, 2, 'NANO') + assert.equal(block.balance, 1000000000000000000000000000000n) + }) + + await test('subtract raw balance as string from send block correctly', async () => { + const block = new Block(ADDRESS_0, '3000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2) .send(ADDRESS_1, '2000000000000000000000000000000') assert.equal(block.balance, 1000000000000000000000000000000n) }) - await test('add balance from receive block correctly', async () => { + await test('subtract raw balance as bigint from send block correctly', async () => { + const block = new Block(ADDRESS_0, '3000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2) + .send(ADDRESS_1, 2000000000000000000000000000000n) + assert.equal(block.balance, 1000000000000000000000000000000n) + }) + + await test('add nano balance as string from receive block correctly', async () => { + const block = new Block(ADDRESS_0, '2000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2) + .receive(RECEIVE_BLOCK.link, '1', 'NANO') + assert.equal(block.balance, 3000000000000000000000000000000n) + }) + + await test('add nano balance as number from receive block correctly', async () => { + const block = new Block(ADDRESS_0, '2000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2) + .receive(RECEIVE_BLOCK.link, 1, 'NANO') + assert.equal(block.balance, 3000000000000000000000000000000n) + }) + + await test('add raw balance as string from receive block correctly', async () => { const block = new Block(ADDRESS_0, '2000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2) .receive(RECEIVE_BLOCK.link, '1000000000000000000000000000000') assert.equal(block.balance, 3000000000000000000000000000000n) }) + await test('add raw balance as bigint from receive block correctly', async () => { + const block = new Block(ADDRESS_0, '2000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2) + .receive(RECEIVE_BLOCK.link, 1000000000000000000000000000000n) + assert.equal(block.balance, 3000000000000000000000000000000n) + }) + await test('fail to receive from address, link must be block hash', async () => { assert.throws(() => { new Block(ADDRESS_0, '2000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)