]> git.codecow.com Git - libnemo.git/commitdiff
Fix convert tool tests to be synchronous. Add convert tests for additional scenarios.
authorChris Duncan <chris@zoso.dev>
Fri, 8 Aug 2025 18:11:46 +0000 (11:11 -0700)
committerChris Duncan <chris@zoso.dev>
Fri, 8 Aug 2025 18:11:46 +0000 (11:11 -0700)
test/test.tools.mjs

index 1df3913467494e032807ff2cfdcb75b0c3d2acd5..21c413dd7f7cd35f0a49e177ad5287f49063a555 100644 (file)
@@ -37,63 +37,79 @@ const rpc = new Rpc(env?.NODE_URL ?? '', env?.API_KEY_NAME)
 await Promise.all([\r
        suite('unit conversion tests', async () => {\r
 \r
-               await test('should convert nano to raw', async () => {\r
-                       const result = await Tools.convert('1', 'NANO', 'RAW')\r
+               await test('convert nano to raw', async () => {\r
+                       const result = Tools.convert('1', 'NANO', 'RAW')\r
                        assert.equal(result, '1000000000000000000000000000000')\r
                })\r
 \r
-               await test('should convert raw to nano', async () => {\r
-                       const result = await Tools.convert('1000000000000000000000000000000', 'RAW', 'NANO')\r
+               await test('convert raw to nano', async () => {\r
+                       const result = Tools.convert('1000000000000000000000000000000', 'RAW', 'NANO')\r
                        assert.equal(result, '1')\r
                })\r
 \r
-               await test('should convert 1 raw to 10^-29 nano', async () => {\r
-                       const result = await Tools.convert('1', 'RAW', 'NANO')\r
+               await test('convert 1 raw to 10^-29 nano', async () => {\r
+                       const result = Tools.convert('1', 'RAW', 'NANO')\r
                        assert.equal(result, '0.000000000000000000000000000001')\r
                })\r
 \r
-               await test('should ignore leading and trailing zeros', async () => {\r
-                       const result = await Tools.convert('0011002200.0033004400', 'nano', 'nano')\r
+               await test('ignore leading and trailing zeros', async () => {\r
+                       const result = Tools.convert('0011002200.0033004400', 'nano', 'nano')\r
                        assert.equal(result, '11002200.00330044')\r
                })\r
 \r
-               await test('should convert raw to nyano', async () => {\r
-                       const result = await Tools.convert(MAX_SUPPLY, 'RAW', 'NYANO')\r
+               await test('convert raw to nyano', async () => {\r
+                       const result = Tools.convert(MAX_SUPPLY, 'RAW', 'NYANO')\r
                        assert.equal(result, '133248297920938.463463374607431768211455')\r
                })\r
 \r
-               await test('should convert case-insensitive nyano to raw', async () => {\r
-                       const result = await Tools.convert('0.000000000000000123456789', 'nYaNo', 'rAw')\r
+               await test('convert case-insensitive nyano to raw', async () => {\r
+                       const result = Tools.convert('0.000000000000000123456789', 'nYaNo', 'rAw')\r
                        assert.equal(result, '123456789')\r
                })\r
 \r
-               await test('should convert nano to pico', async () => {\r
-                       const result = await Tools.convert('123.456', 'nano', 'pico')\r
+               await test('convert nano to pico', async () => {\r
+                       const result = Tools.convert('123.456', 'nano', 'pico')\r
                        assert.equal(result, '123456')\r
                })\r
 \r
-               await test('should convert knano to pico', async () => {\r
-                       const result = await Tools.convert('123.456', 'knano', 'pico')\r
+               await test('convert knano to pico', async () => {\r
+                       const result = Tools.convert('123.456', 'knano', 'pico')\r
                        assert.equal(result, '123456000')\r
                })\r
 \r
-               await test('should throw if amount exceeds raw max', async () => {\r
-                       await assert.rejects(Tools.convert(MAX_RAW, 'NANO', 'RAW'),\r
+               await test('allow zero amount', async () => {\r
+                       const result = Tools.convert('0', 'NANO', 'RAW')\r
+                       assert.equal(result, '0')\r
+               })\r
+\r
+               await test('throw if amount exceeds raw max', async () => {\r
+                       assert.throws(() => Tools.convert(MAX_RAW, 'NANO', 'RAW'),\r
                                { message: 'Amount exceeds Nano limits' })\r
                })\r
 \r
-               await test('should throw if amount exceeds raw min', async () => {\r
-                       await assert.rejects(Tools.convert('0.1', 'RAW', 'NANO'),\r
+               await test('throw if raw amount has a fraction', async () => {\r
+                       assert.throws(() => Tools.convert('0.1', 'RAW', 'RAW'),\r
+                               { message: 'Amount has fractional raw' })\r
+               })\r
+\r
+               await test('throw if nano amount less than zero raw', async () => {\r
+                       debugger\r
+                       assert.throws(() => Tools.convert('0.0000000000000000000000000000001', 'NANO', 'RAW'),\r
                                { message: 'Amount must be at least 1 raw' })\r
                })\r
 \r
-               await test('should throw if amount is blank', async () => {\r
-                       await assert.rejects(Tools.convert('', 'RAW', 'NANO'),\r
+               await test('throw if amount is blank', async () => {\r
+                       assert.throws(() => Tools.convert('', 'RAW', 'NANO'),\r
+                               { message: 'Invalid amount' })\r
+               })\r
+\r
+               await test('throw if amount is missing leading zero', async () => {\r
+                       assert.throws(() => Tools.convert('.1', 'NANO', 'RAW'),\r
                                { message: 'Invalid amount' })\r
                })\r
 \r
-               await test('should throw if amount has non-digit characters', async () => {\r
-                       await assert.rejects(Tools.convert('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF', 'RAW', 'NANO'),\r
+               await test('throw if amount has non-digit characters', async () => {\r
+                       assert.throws(() => Tools.convert('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF', 'RAW', 'NANO'),\r
                                { message: 'Invalid amount' })\r
                })\r
        }),\r