diff --git a/test/data/mock-state.json b/test/data/mock-state.json index cec9ef303..ce7742114 100644 --- a/test/data/mock-state.json +++ b/test/data/mock-state.json @@ -109,7 +109,7 @@ "chainId": "4", "isEns": false, "memo": "", - "name": "" + "name": "Address Book Account 1" } } }, diff --git a/test/unit/ui/app/selectors.spec.js b/test/unit/ui/app/selectors.spec.js deleted file mode 100644 index bff37828d..000000000 --- a/test/unit/ui/app/selectors.spec.js +++ /dev/null @@ -1,88 +0,0 @@ -import assert from 'assert' -import * as selectors from '../../../../ui/app/selectors' -import mockState from '../../../data/mock-state.json' - -describe('Selectors', function () { - - describe('#getSelectedAddress', function () { - it('returns undefined if selectedAddress is undefined', function () { - assert.equal(selectors.getSelectedAddress({ metamask: {} }), undefined) - }) - - it('returns selectedAddress', function () { - const selectedAddress = '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc' - assert.equal(selectors.getSelectedAddress({ metamask: { selectedAddress } }), selectedAddress) - }) - - }) - - it('returns selected identity', function () { - assert.deepEqual( - selectors.getSelectedIdentity(mockState), - { - address: '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc', - name: 'Test Account', - } - ) - }) - - it('returns selected account', function () { - const account = selectors.getSelectedAccount(mockState) - assert.equal(account.balance, '0x0') - assert.equal(account.address, '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc') - }) - - it('returns selected token from first token list', function () { - const token = selectors.getSelectedToken(mockState) - assert.equal(token.address, '0x108cf70c7d384c552f42c07c41c0e1e46d77ea0d') - assert.equal(token.symbol, 'TEST') - assert.equal(token.decimals, '0') - }) - - describe('#getSelectedTokenExchangeRate', function () { - it('returns token exchange rate for first token', function () { - const tokenRate = selectors.getSelectedTokenExchangeRate(mockState) - assert.equal(tokenRate, '0.00039345803819379796') - }) - }) - - it('returns conversionRate from state', function () { - assert.equal(selectors.conversionRateSelector(mockState), 556.12) - }) - - it('returns address book from state', function () { - const addressBook = selectors.getAddressBook(mockState) - assert.equal(addressBook[0].address, '0xc42edfcc21ed14dda456aa0756c153f7985d8813') - assert.equal(addressBook[0].name, '') - }) - - it('returns accounts with balance, address, and name from identity and accounts in state', function () { - const accountsWithSendEther = selectors.accountsWithSendEtherInfoSelector(mockState) - assert.equal(accountsWithSendEther.length, 2) - assert.equal(accountsWithSendEther[0].balance, '0x0') - assert.equal(accountsWithSendEther[0].address, '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc') - assert.equal(accountsWithSendEther[0].name, 'Test Account') - }) - - it('returns selected account with balance, address, and name from accountsWithSendEtherInfoSelector', function () { - const currentAccountwithSendEther = selectors.getCurrentAccountWithSendEtherInfo(mockState) - assert.equal(currentAccountwithSendEther.balance, '0x0') - assert.equal(currentAccountwithSendEther.address, '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc') - assert.equal(currentAccountwithSendEther.name, 'Test Account') - }) - - it('#getGasIsLoading', function () { - const gasIsLoading = selectors.getGasIsLoading(mockState) - assert.equal(gasIsLoading, false) - }) - - it('#getCurrentCurrency', function () { - const currentCurrency = selectors.getCurrentCurrency(mockState) - assert.equal(currentCurrency, 'usd') - }) - - it('#getTotalUnapprovedCount', function () { - const totalUnapprovedCount = selectors.getTotalUnapprovedCount(mockState) - assert.equal(totalUnapprovedCount, 1) - }) -}) diff --git a/ui/app/selectors/tests/confirm-transaction.test.js b/ui/app/selectors/tests/confirm-transaction.test.js index 177d7b50a..b7a758159 100644 --- a/ui/app/selectors/tests/confirm-transaction.test.js +++ b/ui/app/selectors/tests/confirm-transaction.test.js @@ -5,6 +5,7 @@ import { approveTokenAmountAndToAddressSelector, sendTokenTokenAmountAndToAddressSelector, contractExchangeRateSelector, + conversionRateSelector, } from '../confirm-transaction' describe('Confirm Transaction Selector', function () { @@ -153,7 +154,14 @@ describe('Confirm Transaction Selector', function () { it('returns contract exchange rate in metamask state based on confirm transaction txParams token recipient', function () { assert.equal(contractExchangeRateSelector(state), 10) }) + }) + describe('conversionRateSelector', function () { + it('returns conversionRate from state', function () { + const state = { + metamask: { conversionRate: 556.12 }, + } + assert.equal(conversionRateSelector(state), 556.12) + }) }) }) - diff --git a/ui/app/selectors/tests/selectors-test-data.js b/ui/app/selectors/tests/selectors-test-data.js deleted file mode 100644 index 53ce8e6bd..000000000 --- a/ui/app/selectors/tests/selectors-test-data.js +++ /dev/null @@ -1,226 +0,0 @@ -export default { - 'metamask': { - 'isInitialized': true, - 'isUnlocked': true, - 'featureFlags': { 'sendHexData': true }, - 'rpcTarget': 'https://rawtestrpc.metamask.io/', - 'identities': { - '0xfdea65c8e26263f6d9a1b5de9555d2931a33b825': { - 'address': '0xfdea65c8e26263f6d9a1b5de9555d2931a33b825', - 'name': 'Send Account 1', - }, - '0xc5b8dbac4c1d3f152cdeb400e2313f309c410acb': { - 'address': '0xc5b8dbac4c1d3f152cdeb400e2313f309c410acb', - 'name': 'Send Account 2', - }, - '0x2f8d4a878cfa04a6e60d46362f5644deab66572d': { - 'address': '0x2f8d4a878cfa04a6e60d46362f5644deab66572d', - 'name': 'Send Account 3', - }, - '0xd85a4b6a394794842887b8284293d69163007bbb': { - 'address': '0xd85a4b6a394794842887b8284293d69163007bbb', - 'name': 'Send Account 4', - }, - }, - 'cachedBalances': {}, - 'currentBlockGasLimit': '0x4c1878', - 'currentCurrency': 'USD', - 'conversionRate': 1200.88200327, - 'conversionDate': 1489013762, - 'nativeCurrency': 'ETH', - 'frequentRpcList': [], - 'network': '3', - 'accounts': { - '0xfdea65c8e26263f6d9a1b5de9555d2931a33b825': { - 'code': '0x', - 'balance': '0x47c9d71831c76efe', - 'nonce': '0x1b', - 'address': '0xfdea65c8e26263f6d9a1b5de9555d2931a33b825', - }, - '0xc5b8dbac4c1d3f152cdeb400e2313f309c410acb': { - 'code': '0x', - 'balance': '0x37452b1315889f80', - 'nonce': '0xa', - 'address': '0xc5b8dbac4c1d3f152cdeb400e2313f309c410acb', - }, - '0x2f8d4a878cfa04a6e60d46362f5644deab66572d': { - 'code': '0x', - 'balance': '0x30c9d71831c76efe', - 'nonce': '0x1c', - 'address': '0x2f8d4a878cfa04a6e60d46362f5644deab66572d', - }, - '0xd85a4b6a394794842887b8284293d69163007bbb': { - 'code': '0x', - 'balance': '0x0', - 'nonce': '0x0', - 'address': '0xd85a4b6a394794842887b8284293d69163007bbb', - }, - }, - 'addressBook': { - '3': { - '0x06195827297c7a80a443b6894d3bdb8824b43896': { - 'address': '0x06195827297c7a80a443b6894d3bdb8824b43896', - 'chainId': '3', - 'isEns': false, - 'memo': '', - 'name': 'Address Book Account 1', - }, - }, - }, - 'tokens': [ - { - 'address': '0x1a195821297c7a80a433b6894d3bdb8824b43896', - 'decimals': 18, - 'symbol': 'ABC', - }, - { - 'address': '0x8d6b81208414189a58339873ab429b6c47ab92d3', - 'decimals': 4, - 'symbol': 'DEF', - }, - { - 'address': '0xa42084c8d1d9a2198631988579bb36b48433a72b', - 'decimals': 18, - 'symbol': 'GHI', - }, - ], - 'contractExchangeRates': { - '0x8d6b81208414189a58339873ab429b6c47ab92d3': 0.00039345803819379796, - '0xd8f6a2ffb0fc5952d16c9768b71cfd35b6399aa5': 0.00008189274407698049, - }, - 'transactions': {}, - 'currentNetworkTxList': [ - { - 'id': 'mockTokenTx1', - 'txParams': { - 'to': '0x8d6b81208414189a58339873ab429b6c47ab92d3', - }, - 'time': 1700000000000, - }, - { - 'id': 'mockTokenTx2', - 'txParams': { - 'to': '0xafaketokenaddress', - }, - 'time': 1600000000000, - }, - { - 'id': 'mockTokenTx3', - 'txParams': { - 'to': '0x8d6b81208414189a58339873ab429b6c47ab92d3', - }, - 'time': 1500000000000, - }, - { - 'id': 'mockEthTx1', - 'txParams': { - 'to': '0xd85a4b6a394794842887b8284293d69163007bbb', - }, - 'time': 1400000000000, - }, - ], - 'selectedTokenAddress': '0x8d6b81208414189a58339873ab429b6c47ab92d3', - 'unapprovedMsgs': { - '0xabc': { id: 'unapprovedMessage1', 'time': 1650000000000 }, - '0xdef': { id: 'unapprovedMessage2', 'time': 1550000000000 }, - '0xghi': { id: 'unapprovedMessage3', 'time': 1450000000000 }, - }, - 'unapprovedMsgCount': 0, - 'unapprovedPersonalMsgs': {}, - 'unapprovedPersonalMsgCount': 0, - 'unapprovedDecryptMsgs': {}, - 'unapprovedDecryptMsgCount': 0, - 'unapprovedEncryptionPublicKeyMsgs': {}, - 'unapprovedEncryptionPublicKeyMsgCount': 0, - 'keyringTypes': [ - 'Simple Key Pair', - 'HD Key Tree', - ], - 'keyrings': [ - { - 'type': 'HD Key Tree', - 'accounts': [ - 'fdea65c8e26263f6d9a1b5de9555d2931a33b825', - 'c5b8dbac4c1d3f152cdeb400e2313f309c410acb', - '2f8d4a878cfa04a6e60d46362f5644deab66572d', - ], - }, - { - 'type': 'Simple Key Pair', - 'accounts': [ - '0xd85a4b6a394794842887b8284293d69163007bbb', - ], - }, - ], - 'selectedAddress': '0xd85a4b6a394794842887b8284293d69163007bbb', - 'provider': { - 'type': 'testnet', - }, - 'send': { - 'gasLimit': '0xFFFF', - 'gasPrice': '0xaa', - 'gasTotal': '0xb451dc41b578', - 'tokenBalance': 3434, - 'from': { - 'address': '0xabcdefg', - 'balance': '0x5f4e3d2c1', - }, - 'to': '0x987fedabc', - 'amount': '0x080', - 'memo': '', - 'errors': { - 'someError': null, - }, - 'maxModeOn': false, - 'editingTransactionId': 97531, - }, - 'unapprovedTxs': { - '4768706228115573': { - 'id': 4768706228115573, - 'time': 1487363153561, - 'status': 'unapproved', - 'gasMultiplier': 1, - 'metamaskNetworkId': '3', - 'txParams': { - 'from': '0xc5b8dbac4c1d3f152cdeb400e2313f309c410acb', - 'to': '0x18a3462427bcc9133bb46e88bcbe39cd7ef0e761', - 'value': '0xde0b6b3a7640000', - 'metamaskId': 4768706228115573, - 'metamaskNetworkId': '3', - 'gas': '0x5209', - }, - 'txFee': '17e0186e60800', - 'txValue': 'de0b6b3a7640000', - 'maxCost': 'de234b52e4a0800', - 'gasPrice': '4a817c800', - }, - }, - 'currentLocale': 'en', - recentBlocks: ['mockBlock1', 'mockBlock2', 'mockBlock3'], - }, - 'appState': { - 'menuOpen': false, - 'currentView': { - 'name': 'accountDetail', - 'detailView': null, - 'context': '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc', - }, - 'accountDetail': { - 'subview': 'transactions', - }, - 'modal': { - 'modalState': {}, - 'previousModalState': {}, - }, - 'isLoading': false, - 'warning': null, - 'scrollToBottom': false, - 'forgottenPassword': null, - }, - 'identities': {}, - 'send': { - 'fromDropdownOpen': false, - 'toDropdownOpen': false, - 'errors': { 'someError': null }, - }, -} diff --git a/ui/app/selectors/tests/selectors.test.js b/ui/app/selectors/tests/selectors.test.js index b86d33b82..c0997bb9c 100644 --- a/ui/app/selectors/tests/selectors.test.js +++ b/ui/app/selectors/tests/selectors.test.js @@ -1,17 +1,52 @@ import assert from 'assert' -import { getAddressBook } from '../selectors' -import mockState from './selectors-test-data' +import * as selectors from '../selectors' +import mockState from '../../../../test/data/mock-state.json' -describe('selectors', function () { +describe('Selectors', function () { - describe('getAddressBook()', function () { + describe('#getSelectedAddress', function () { + it('returns undefined if selectedAddress is undefined', function () { + assert.equal(selectors.getSelectedAddress({ metamask: {} }), undefined) + }) + + it('returns selectedAddress', function () { + const selectedAddress = '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc' + assert.equal(selectors.getSelectedAddress({ metamask: { selectedAddress } }), selectedAddress) + }) + + }) + + it('returns selected identity', function () { + assert.deepEqual( + selectors.getSelectedIdentity(mockState), + { + address: '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc', + name: 'Test Account', + } + ) + }) + + it('returns selected account', function () { + const account = selectors.getSelectedAccount(mockState) + assert.equal(account.balance, '0x0') + assert.equal(account.address, '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc') + }) + + describe('#getSelectedTokenExchangeRate', function () { + it('returns token exchange rate for first token', function () { + const tokenRate = selectors.getSelectedTokenExchangeRate(mockState) + assert.equal(tokenRate, '0.00039345803819379796') + }) + }) + + describe('#getAddressBook', function () { it('should return the address book', function () { assert.deepEqual( - getAddressBook(mockState), + selectors.getAddressBook(mockState), [ { - 'address': '0x06195827297c7a80a443b6894d3bdb8824b43896', - 'chainId': '3', + 'address': '0xc42edfcc21ed14dda456aa0756c153f7985d8813', + 'chainId': '4', 'isEns': false, 'memo': '', 'name': 'Address Book Account 1', @@ -20,4 +55,34 @@ describe('selectors', function () { ) }) }) + + it('returns accounts with balance, address, and name from identity and accounts in state', function () { + const accountsWithSendEther = selectors.accountsWithSendEtherInfoSelector(mockState) + assert.equal(accountsWithSendEther.length, 2) + assert.equal(accountsWithSendEther[0].balance, '0x0') + assert.equal(accountsWithSendEther[0].address, '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc') + assert.equal(accountsWithSendEther[0].name, 'Test Account') + }) + + it('returns selected account with balance, address, and name from accountsWithSendEtherInfoSelector', function () { + const currentAccountwithSendEther = selectors.getCurrentAccountWithSendEtherInfo(mockState) + assert.equal(currentAccountwithSendEther.balance, '0x0') + assert.equal(currentAccountwithSendEther.address, '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc') + assert.equal(currentAccountwithSendEther.name, 'Test Account') + }) + + it('#getGasIsLoading', function () { + const gasIsLoading = selectors.getGasIsLoading(mockState) + assert.equal(gasIsLoading, false) + }) + + it('#getCurrentCurrency', function () { + const currentCurrency = selectors.getCurrentCurrency(mockState) + assert.equal(currentCurrency, 'usd') + }) + + it('#getTotalUnapprovedCount', function () { + const totalUnapprovedCount = selectors.getTotalUnapprovedCount(mockState) + assert.equal(totalUnapprovedCount, 1) + }) })