BlueWallet/tests/unit/addresses.test.js
2021-04-12 11:06:30 -03:00

60 lines
2.1 KiB
JavaScript

import assert from 'assert';
import { getAddress, sortByIndexAndType, totalBalance } from '../../screen/wallets/addresses';
describe('Addresses', () => {
it('Sort by index ASC and externals first', () => {
const originalList = [
{ index: 0, isInternal: true, key: 'first_internal_address' },
{ index: 1, isInternal: false, key: 'second_external_address' },
{ index: 1, isInternal: true, key: 'second_internal_address' },
{ index: 0, isInternal: false, key: 'first_external_address' },
];
const sortedList = originalList.sort(sortByIndexAndType);
assert.strictEqual(sortedList[0].key, 'first_external_address');
assert.strictEqual(sortedList[1].key, 'second_external_address');
assert.strictEqual(sortedList[2].key, 'first_internal_address');
assert.strictEqual(sortedList[3].key, 'second_internal_address');
});
it('Sum confirmed/unconfirmed balance', () => {
const wallet1Balance = { c: 0, u: 0 };
const wallet2Balance = { c: 7, u: 3 };
const wallet3Balance = { c: 3, u: 7 };
assert.strictEqual(totalBalance(wallet1Balance), 0);
assert.strictEqual(totalBalance(wallet2Balance), 10);
assert.strictEqual(totalBalance(wallet3Balance), 10);
});
it('Returns AddressItem object', () => {
const fakeWallet = {
_getExternalAddressByIndex: index => `external_address_${index}`,
_getInternalAddressByIndex: index => `internal_address_${index}`,
_balances_by_external_index: [{ c: 0, u: 0 }],
_balances_by_internal_index: [{ c: 0, u: 0 }],
};
const firstExternalAddress = getAddress(fakeWallet, 0, false);
const firstInternalAddress = getAddress(fakeWallet, 0, true);
assert.deepStrictEqual(firstExternalAddress, {
address: 'external_address_0',
balance: 0,
index: 0,
isInternal: false,
key: 'external_address_0',
transactions: 0,
});
assert.deepStrictEqual(firstInternalAddress, {
address: 'internal_address_0',
balance: 0,
index: 0,
isInternal: true,
key: 'internal_address_0',
transactions: 0,
});
});
});