diff options
author | Dan Miller <danjm.com@gmail.com> | 2018-10-24 12:22:22 +0800 |
---|---|---|
committer | Dan Miller <danjm.com@gmail.com> | 2018-12-04 11:36:05 +0800 |
commit | d14af8346af2517db2e50f142377948c9f2ae5e9 (patch) | |
tree | ccdfe345dd000b44c0eedfbee0037969ff2d6f38 /ui/app/selectors | |
parent | d0619b024fb092182e77e16c6742e157c89b2dc9 (diff) | |
download | tangerine-wallet-browser-d14af8346af2517db2e50f142377948c9f2ae5e9.tar tangerine-wallet-browser-d14af8346af2517db2e50f142377948c9f2ae5e9.tar.gz tangerine-wallet-browser-d14af8346af2517db2e50f142377948c9f2ae5e9.tar.bz2 tangerine-wallet-browser-d14af8346af2517db2e50f142377948c9f2ae5e9.tar.lz tangerine-wallet-browser-d14af8346af2517db2e50f142377948c9f2ae5e9.tar.xz tangerine-wallet-browser-d14af8346af2517db2e50f142377948c9f2ae5e9.tar.zst tangerine-wallet-browser-d14af8346af2517db2e50f142377948c9f2ae5e9.zip |
Improve data management and tests for gas-modal-page-container price estimates.
Diffstat (limited to 'ui/app/selectors')
-rw-r--r-- | ui/app/selectors/custom-gas.js | 25 | ||||
-rw-r--r-- | ui/app/selectors/tests/custom-gas.test.js | 32 |
2 files changed, 52 insertions, 5 deletions
diff --git a/ui/app/selectors/custom-gas.js b/ui/app/selectors/custom-gas.js index abc8ba191..46bf06efc 100644 --- a/ui/app/selectors/custom-gas.js +++ b/ui/app/selectors/custom-gas.js @@ -21,17 +21,20 @@ import { import { addHexPrefix } from 'ethereumjs-util' const selectors = { + formatTimeEstimate, + getAveragePriceEstimateInHexWEI, + getBasicGasEstimateLoadingStatus, getCustomGasErrors, getCustomGasLimit, getCustomGasPrice, getCustomGasTotal, - getRenderableEstimateDataForSmallButtons, - getRenderableBasicEstimateData, - getBasicGasEstimateLoadingStatus, - getAveragePriceEstimateInHexWEI, getDefaultActiveButtonIndex, + getEstimatedGasPrices, + getEstimatedGasTimes, + getPriceAndTimeEstimates, + getRenderableBasicEstimateData, + getRenderableEstimateDataForSmallButtons, priceEstimateToWei, - formatTimeEstimate, } module.exports = selectors @@ -58,6 +61,18 @@ function getBasicGasEstimateLoadingStatus (state) { return state.gas.basicEstimateIsLoading } +function getPriceAndTimeEstimates (state) { + return state.gas.priceAndTimeEstimates +} + +function getEstimatedGasPrices (state) { + return getPriceAndTimeEstimates(state).map(({ gasprice }) => gasprice) +} + +function getEstimatedGasTimes (state) { + return getPriceAndTimeEstimates(state).map(({ expectedTime }) => expectedTime) +} + function getAveragePriceEstimateInHexWEI (state) { const averagePriceEstimate = state.gas.basicEstimates.average return getGasPriceInHexWei(averagePriceEstimate || '0x0') diff --git a/ui/app/selectors/tests/custom-gas.test.js b/ui/app/selectors/tests/custom-gas.test.js index 5fde61c9b..1099670f2 100644 --- a/ui/app/selectors/tests/custom-gas.test.js +++ b/ui/app/selectors/tests/custom-gas.test.js @@ -6,6 +6,9 @@ const { getCustomGasLimit, getCustomGasPrice, getCustomGasTotal, + getEstimatedGasPrices, + getEstimatedGasTimes, + getPriceAndTimeEstimates, getRenderableBasicEstimateData, getRenderableEstimateDataForSmallButtons, } = proxyquire('../custom-gas', {}) @@ -40,6 +43,35 @@ describe('custom-gas selectors', () => { }) }) + describe('getPriceAndTimeEstimates', () => { + it('should return price and time estimates', () => { + const mockState = { gas: { priceAndTimeEstimates: 'mockPriceAndTimeEstimates' } } + assert.equal(getPriceAndTimeEstimates(mockState), 'mockPriceAndTimeEstimates') + }) + }) + + describe('getEstimatedGasPrices', () => { + it('should return price and time estimates', () => { + const mockState = { gas: { priceAndTimeEstimates: [ + { gasprice: 12, somethingElse: 20 }, + { gasprice: 22, expectedTime: 30 }, + { gasprice: 32, somethingElse: 40 }, + ] } } + assert.deepEqual(getEstimatedGasPrices(mockState), [12, 22, 32]) + }) + }) + + describe('getEstimatedGasTimes', () => { + it('should return price and time estimates', () => { + const mockState = { gas: { priceAndTimeEstimates: [ + { somethingElse: 12, expectedTime: 20 }, + { gasPrice: 22, expectedTime: 30 }, + { somethingElse: 32, expectedTime: 40 }, + ] } } + assert.deepEqual(getEstimatedGasTimes(mockState), [20, 30, 40]) + }) + }) + describe('getRenderableBasicEstimateData()', () => { const tests = [ { |