UNPKG

@plugnet/util

Version:
143 lines (136 loc) 4.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _bn = _interopRequireDefault(require("bn.js")); var _formatBalance = _interopRequireDefault(require("./formatBalance")); // Copyright 2017-2019 @polkadot/util authors & contributors // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. describe('formatBalance', () => { const TESTVAL = new _bn.default('123456789000'); it('formats empty to 0', () => { expect((0, _formatBalance.default)()).toEqual('0'); expect((0, _formatBalance.default)('0')).toEqual('0'); }); it('formats 123,456,789,000 (decimals=15)', () => { expect((0, _formatBalance.default)(TESTVAL, true, 15)).toEqual('123.456µ Unit'); }); it('formats 123,456,789,000 (decimals=36)', () => { expect((0, _formatBalance.default)(TESTVAL, true, 36)).toEqual('0.123y Unit'); }); it('formats 123,456,789,000 (decimals=15, Compact)', () => { const compact = { toBn: () => TESTVAL, unwrap: () => TESTVAL, something: 'else' }; expect((0, _formatBalance.default)(compact, true, 15)).toEqual('123.456µ Unit'); }); it('formats 123,456,789,000 (decimals=12)', () => { expect((0, _formatBalance.default)(TESTVAL, true, 12)).toEqual('123.456m Unit'); }); it('formats 123,456,789,000 (decimals=12, no SI)', () => { expect((0, _formatBalance.default)(TESTVAL, false, 12)).toEqual('123.456'); }); it('formats 123,456,789,000 (decimals=9)', () => { expect((0, _formatBalance.default)(TESTVAL, true, 9)).toEqual('123.456 Unit'); }); it('formats 123,456,789,000 (decimals=6)', () => { expect((0, _formatBalance.default)(TESTVAL, true, 6)).toEqual('123.456k Unit'); }); it('formats 123,456,789,000 * 10 (decimals=12)', () => { expect((0, _formatBalance.default)(TESTVAL.muln(10), true, 12)).toEqual('1.234 Unit'); }); it('formats 123,456,789,000 * 100 (decimals=12)', () => { expect((0, _formatBalance.default)(TESTVAL.muln(100), true, 12)).toEqual('12.345 Unit'); }); it('formats 123,456,789,000 * 1000 (decimals=12)', () => { expect((0, _formatBalance.default)(TESTVAL.muln(1000), true, 12)).toEqual('123.456 Unit'); }); it('formats -123,456,789,000 (decimals=15)', () => { expect((0, _formatBalance.default)(new _bn.default('-123456789000'), true, 15)).toEqual('-123.456µ Unit'); }); describe('calcSi', () => { it('exposes calcSi on formatBalance', () => { expect(_formatBalance.default.calcSi('12345').value).toEqual('k'); }); }); describe('findSi', () => { it('finds the SI value', () => { expect(_formatBalance.default.findSi('k')).toEqual({ power: 3, value: 'k', text: 'Kilo' }); }); it('returns default on not found', () => { expect(_formatBalance.default.findSi('blah')).toEqual({ power: 0, value: '-', text: 'Unit' }); }); }); describe('defaults', () => { it('returns defaults', () => { expect(_formatBalance.default.getDefaults()).toEqual({ decimals: 0, unit: 'Unit' }); }); it('formats 123,456,789,000 (defaultDecimals=12)', () => { _formatBalance.default.setDefaults({ decimals: 12 }); expect((0, _formatBalance.default)(TESTVAL)).toEqual('123.456m Unit'); }); it('formats 123,456,789,000 (defaultUnit=TEST)', () => { _formatBalance.default.setDefaults({ unit: 'TEST' }); expect((0, _formatBalance.default)(TESTVAL)).toEqual('123.456m TEST'); }); }); it('returns options for dropdown', () => { _formatBalance.default.setDefaults({ decimals: 0, unit: 'TEST' }); expect(_formatBalance.default.getOptions()).toEqual([{ power: 0, value: '-', text: 'TEST' }, { power: 3, value: 'k', text: 'Kilo' }, { power: 6, value: 'M', text: 'Mega' }, { power: 9, value: 'G', text: 'Giga' }, { power: 12, value: 'T', text: 'Tera' }, { power: 15, value: 'P', text: 'Peta' }, { power: 18, value: 'E', text: 'Exa' }, { power: 21, value: 'Z', text: 'Zeta' }, { power: 24, value: 'Y', text: 'Yotta' }]); }); });