Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
test: updated formatBalance call and tests
  • Loading branch information
LeonfLK committed Sep 30, 2020
commit b2ac21015e5e6903e6aa6b7d415e079ecc7c559e
95 changes: 95 additions & 0 deletions src/balance/Balance.utils.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
import BN from 'bn.js'
import {
formatKiltBalance,
convertToTxUnit,
asFemtoKilt,
TRANSACTION_FEE,
} from './Balance.utils'

describe('formatKiltBalance', () => {
const TESTVALUE = new BN('123456789000')
const baseValue = new BN('1')
it('formats the given balance', async () => {
expect(formatKiltBalance(TESTVALUE)).toEqual('123.456 micro KILT')
expect(formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(3))))).toEqual(
'1.000 pico KILT'
)
expect(formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(6))))).toEqual(
'1.000 nano KILT'
)
expect(formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(9))))).toEqual(
'1.000 micro KILT'
)
expect(
formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(12))))
).toEqual('1.000 milli KILT')
expect(
formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(15))))
).toEqual('1.000 KILT')
expect(
formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(18))))
).toEqual('1.000 Kilo KILT')
expect(
formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(21))))
).toEqual('1.000 Mega KILT')
expect(
formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(24))))
).toEqual('1.000 Giga KILT')
expect(
formatKiltBalance(baseValue.mul(new BN(10).pow(new BN(27))))
).toEqual('1.000 Tera KILT')
})
})
describe('convertToTxUnit', () => {
it('converts given value with given power to femto KILT', () => {
expect(new BN(convertToTxUnit(new BN(1), -15).toString())).toEqual(
new BN(1)
)
expect(new BN(convertToTxUnit(new BN(1), -12).toString())).toEqual(
new BN('1000')
)
expect(new BN(convertToTxUnit(new BN(1), -9).toString())).toEqual(
new BN('1000000')
)
expect(new BN(convertToTxUnit(new BN(1), -6).toString())).toEqual(
new BN('1000000000')
)
expect(new BN(convertToTxUnit(new BN(1), -3).toString())).toEqual(
new BN('1000000000000')
)
expect(new BN(convertToTxUnit(new BN(1), 0).toString())).toEqual(
new BN('1000000000000000')
)
expect(new BN(convertToTxUnit(new BN(1), 3).toString())).toEqual(
new BN('1000000000000000000')
)
expect(new BN(convertToTxUnit(new BN(1), 6).toString())).toEqual(
new BN('1000000000000000000000')
)
expect(new BN(convertToTxUnit(new BN(1), 9).toString())).toEqual(
new BN('1000000000000000000000000')
)
expect(new BN(convertToTxUnit(new BN(1), 12).toString())).toEqual(
new BN('1000000000000000000000000000')
)
expect(new BN(convertToTxUnit(new BN(1), 15).toString())).toEqual(
new BN('1000000000000000000000000000000')
)
expect(new BN(convertToTxUnit(new BN(1), 18).toString())).toEqual(
new BN('1000000000000000000000000000000000')
)
})
})
describe('asFemtoKilt', () => {
it('converts whole KILT to femtoKilt using convertToTxUnit', () => {
expect(new BN(asFemtoKilt(new BN(1000)).toString())).toEqual(
new BN('1000000000000000000')
)
})
})

describe('TRANSACTION_FEE', () => {
it('equals 125 nano KILT', () => {
expect(formatKiltBalance(TRANSACTION_FEE)).toEqual('125.000 nano KILT')
})
})
13 changes: 5 additions & 8 deletions src/balance/Balance.utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,11 @@ import { formatBalance } from '@polkadot/util'
export const KILT_COIN = new BN(1)

export function formatKiltBalance(amount: BN): string {
return formatBalance(
amount,
{
withSiFull: true,
withUnit: 'KILT',
},
15
)
return formatBalance(amount, {
decimals: 15,
withSiFull: true,
withUnit: 'KILT',
})
}

export function convertToTxUnit(balance: BN, power: number): BN {
Expand Down