mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-22 18:00:18 +01:00
Consolidate selector tests (#8510)
This commit is contained in:
parent
79d9209473
commit
0a584a3a0e
@ -109,7 +109,7 @@
|
|||||||
"chainId": "4",
|
"chainId": "4",
|
||||||
"isEns": false,
|
"isEns": false,
|
||||||
"memo": "",
|
"memo": "",
|
||||||
"name": ""
|
"name": "Address Book Account 1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -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)
|
|
||||||
})
|
|
||||||
})
|
|
@ -5,6 +5,7 @@ import {
|
|||||||
approveTokenAmountAndToAddressSelector,
|
approveTokenAmountAndToAddressSelector,
|
||||||
sendTokenTokenAmountAndToAddressSelector,
|
sendTokenTokenAmountAndToAddressSelector,
|
||||||
contractExchangeRateSelector,
|
contractExchangeRateSelector,
|
||||||
|
conversionRateSelector,
|
||||||
} from '../confirm-transaction'
|
} from '../confirm-transaction'
|
||||||
|
|
||||||
describe('Confirm Transaction Selector', function () {
|
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 () {
|
it('returns contract exchange rate in metamask state based on confirm transaction txParams token recipient', function () {
|
||||||
assert.equal(contractExchangeRateSelector(state), 10)
|
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)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -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 },
|
|
||||||
},
|
|
||||||
}
|
|
@ -1,17 +1,52 @@
|
|||||||
import assert from 'assert'
|
import assert from 'assert'
|
||||||
import { getAddressBook } from '../selectors'
|
import * as selectors from '../selectors'
|
||||||
import mockState from './selectors-test-data'
|
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 () {
|
it('should return the address book', function () {
|
||||||
assert.deepEqual(
|
assert.deepEqual(
|
||||||
getAddressBook(mockState),
|
selectors.getAddressBook(mockState),
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
'address': '0x06195827297c7a80a443b6894d3bdb8824b43896',
|
'address': '0xc42edfcc21ed14dda456aa0756c153f7985d8813',
|
||||||
'chainId': '3',
|
'chainId': '4',
|
||||||
'isEns': false,
|
'isEns': false,
|
||||||
'memo': '',
|
'memo': '',
|
||||||
'name': 'Address Book Account 1',
|
'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)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user