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