forked from BlueWallet/BlueWallet
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathloc.test.js
85 lines (75 loc) · 3.92 KB
/
loc.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import assert from 'assert';
import { _setExchangeRate, _setPreferredFiatCurrency, _setSkipUpdateExchangeRate } from '../../blue_modules/currency';
import { _leaveNumbersAndDots, formatBalance, formatBalancePlain, formatBalanceWithoutSuffix } from '../../loc';
import { BitcoinUnit } from '../../models/bitcoinUnits';
import { FiatUnit } from '../../models/fiatUnit';
describe('Localization', () => {
it('internal formatter', () => {
assert.strictEqual(_leaveNumbersAndDots('1,00 ₽'), '1');
assert.strictEqual(_leaveNumbersAndDots('0,50 ₽"'), '0.50');
assert.strictEqual(_leaveNumbersAndDots('RUB 1,00'), '1');
});
it('formatBalancePlain() && formatBalancePlain()', () => {
_setExchangeRate('BTC_RUB', 660180.143);
_setPreferredFiatCurrency(FiatUnit.RUB);
let newInputValue = formatBalanceWithoutSuffix(152, BitcoinUnit.LOCAL_CURRENCY, false);
assert.ok(newInputValue === 'RUB 1.00' || newInputValue === '1,00 ₽', 'Unexpected: ' + newInputValue);
newInputValue = formatBalancePlain(152, BitcoinUnit.LOCAL_CURRENCY, false);
assert.strictEqual(newInputValue, '1');
newInputValue = formatBalanceWithoutSuffix(1515, BitcoinUnit.LOCAL_CURRENCY, false);
assert.ok(newInputValue === 'RUB 10.00' || newInputValue === '10,00 ₽', 'Unexpected: ' + newInputValue);
newInputValue = formatBalancePlain(1515, BitcoinUnit.LOCAL_CURRENCY, false);
assert.strictEqual(newInputValue, '10');
newInputValue = formatBalanceWithoutSuffix(16793829, BitcoinUnit.LOCAL_CURRENCY, false);
assert.ok(newInputValue === 'RUB 110,869.52' || newInputValue === '110 869,52 ₽', 'Unexpected: ' + newInputValue);
newInputValue = formatBalancePlain(16793829, BitcoinUnit.LOCAL_CURRENCY, false);
assert.strictEqual(newInputValue, '110869.52');
newInputValue = formatBalancePlain(76, BitcoinUnit.LOCAL_CURRENCY, false);
assert.strictEqual(newInputValue, '0.50');
_setExchangeRate('BTC_USD', 10000);
_setPreferredFiatCurrency(FiatUnit.USD);
newInputValue = formatBalanceWithoutSuffix(16793829, BitcoinUnit.LOCAL_CURRENCY, false);
assert.strictEqual(newInputValue, '$1,679.38');
newInputValue = formatBalancePlain(16793829, BitcoinUnit.LOCAL_CURRENCY, false);
assert.strictEqual(newInputValue, '1679.38');
newInputValue = formatBalancePlain(16000000, BitcoinUnit.LOCAL_CURRENCY, false);
assert.strictEqual(newInputValue, '1600');
});
it.each([
[123000000, BitcoinUnit.SATS, false, '123000000', false],
[123000000, BitcoinUnit.SATS, true, '123,000,000', false],
[123456000, BitcoinUnit.BTC, true, '1.23456', false],
['123456000', BitcoinUnit.BTC, true, '1.23456', false], // can handle strings
[100000000, BitcoinUnit.BTC, true, '1', false],
[10000000, BitcoinUnit.BTC, true, '0.1', false],
[1, BitcoinUnit.BTC, true, '0.00000001', false],
[10000000, BitcoinUnit.LOCAL_CURRENCY, true, '...', true], // means unknown since we did not receive exchange rate
])(
'can formatBalanceWithoutSuffix',
async (balance, toUnit, withFormatting, expectedResult, shouldResetRate) => {
_setExchangeRate('BTC_USD', 1);
_setPreferredFiatCurrency(FiatUnit.USD);
if (shouldResetRate) {
_setExchangeRate('BTC_USD', false);
_setSkipUpdateExchangeRate();
}
const actualResult = formatBalanceWithoutSuffix(balance, toUnit, withFormatting);
assert.strictEqual(actualResult, expectedResult);
},
240000,
);
it.each([
[123000000, BitcoinUnit.SATS, false, '123000000 sats'],
[123000000, BitcoinUnit.BTC, false, '1.23 BTC'],
[123000000, BitcoinUnit.LOCAL_CURRENCY, false, '$1.23'],
])(
'can formatBalance',
async (balance, toUnit, withFormatting, expectedResult) => {
_setExchangeRate('BTC_USD', 1);
_setPreferredFiatCurrency(FiatUnit.USD);
const actualResult = formatBalance(balance, toUnit, withFormatting);
assert.strictEqual(actualResult, expectedResult);
},
240000,
);
});