]> git.codecow.com Git - libnemo.git/commitdiff
Add test coverage for wallet balance conversion between units.
authorChris Duncan <chris@zoso.dev>
Fri, 8 Aug 2025 12:43:29 +0000 (05:43 -0700)
committerChris Duncan <chris@zoso.dev>
Fri, 8 Aug 2025 12:43:29 +0000 (05:43 -0700)
test/test.blocks.mjs

index b8b2e0981cfa896493ee138d42641c51c1549899..47a0a6294ba81a6a4813ec44e802c01d1f370620 100644 (file)
@@ -32,26 +32,60 @@ await Promise.all([
                })\r
 \r
                await test('allow zero balances', async () => {\r
-                       const block = new Block(\r
-                               ADDRESS_0, '9007199254740991', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)\r
+                       const block = new Block(ADDRESS_0, '9007199254740991', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)\r
                                .send(ADDRESS_1, '9007199254740991')\r
                        assert.notEqual(block.balance, 0)\r
                        assert.equal(block.balance, BigInt(0))\r
                })\r
 \r
-               await test('subtract balance from send block correctly', async () => {\r
-                       const block = new Block(\r
-                               ADDRESS_0, '3000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)\r
+               await test('subtract nano balance as string from send block correctly', async () => {\r
+                       const block = new Block(ADDRESS_0, '3000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)\r
+                               .send(ADDRESS_1, '2', 'NANO')\r
+                       assert.equal(block.balance, 1000000000000000000000000000000n)\r
+               })\r
+\r
+               await test('subtract nano balance as number from send block correctly', async () => {\r
+                       const block = new Block(ADDRESS_0, '3000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)\r
+                               .send(ADDRESS_1, 2, 'NANO')\r
+                       assert.equal(block.balance, 1000000000000000000000000000000n)\r
+               })\r
+\r
+               await test('subtract raw balance as string from send block correctly', async () => {\r
+                       const block = new Block(ADDRESS_0, '3000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)\r
                                .send(ADDRESS_1, '2000000000000000000000000000000')\r
                        assert.equal(block.balance, 1000000000000000000000000000000n)\r
                })\r
 \r
-               await test('add balance from receive block correctly', async () => {\r
+               await test('subtract raw balance as bigint from send block correctly', async () => {\r
+                       const block = new Block(ADDRESS_0, '3000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)\r
+                               .send(ADDRESS_1, 2000000000000000000000000000000n)\r
+                       assert.equal(block.balance, 1000000000000000000000000000000n)\r
+               })\r
+\r
+               await test('add nano balance as string from receive block correctly', async () => {\r
+                       const block = new Block(ADDRESS_0, '2000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)\r
+                               .receive(RECEIVE_BLOCK.link, '1', 'NANO')\r
+                       assert.equal(block.balance, 3000000000000000000000000000000n)\r
+               })\r
+\r
+               await test('add nano balance as number from receive block correctly', async () => {\r
+                       const block = new Block(ADDRESS_0, '2000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)\r
+                               .receive(RECEIVE_BLOCK.link, 1, 'NANO')\r
+                       assert.equal(block.balance, 3000000000000000000000000000000n)\r
+               })\r
+\r
+               await test('add raw balance as string from receive block correctly', async () => {\r
                        const block = new Block(ADDRESS_0, '2000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)\r
                                .receive(RECEIVE_BLOCK.link, '1000000000000000000000000000000')\r
                        assert.equal(block.balance, 3000000000000000000000000000000n)\r
                })\r
 \r
+               await test('add raw balance as bigint from receive block correctly', async () => {\r
+                       const block = new Block(ADDRESS_0, '2000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)\r
+                               .receive(RECEIVE_BLOCK.link, 1000000000000000000000000000000n)\r
+                       assert.equal(block.balance, 3000000000000000000000000000000n)\r
+               })\r
+\r
                await test('fail to receive from address, link must be block hash', async () => {\r
                        assert.throws(() => {\r
                                new Block(ADDRESS_0, '2000000000000000000000000000000', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', ADDRESS_2)\r