import * as mocha from 'mocha'; import * as chai from 'chai'; import {bigNumberValidation} from '../src/big-number-validation'; import {factories} from './lib/factories'; import {IndexedRelayTokens, RelayToken} from '0x-relay-types'; import {RelayUtil} from '../src/index'; import {AddressHelper} from './lib/address-helper'; import BigNumber from 'bignumber.js'; const expect = chai.expect; let util: RelayUtil; let indexedRelayTokens: IndexedRelayTokens; const tokenAddresses: string[] = []; /* tslint:disable:no-unused-expression */ describe('valueInETH', () => { before(async () => { indexedRelayTokens = factories.indexedRelayTokensFactory(10, tokenAddresses); util = new RelayUtil(indexedRelayTokens); }); it('should return zero when the token is not available', () => { expect(util.valueInETH(500, AddressHelper.RandomAddress()).equals(new BigNumber('0'))); }); it('should return the rate from a token', () => { const token: RelayToken = util.getTokenByAddress(tokenAddresses[5]); expect(token.rate.WETH.times(new BigNumber('50')).equals(util.valueInETH(50, tokenAddresses[5]))); }); it('should return zero when the token has no rate', () => { const token: RelayToken = util.getTokenByAddress(tokenAddresses[8]); // Make sure the token does not have a 0 rate already expect(token.rate); expect(util.valueInETH(500, tokenAddresses[8]).greaterThan(new BigNumber('0'))); token.rate = undefined; expect(util.valueInETH(500, tokenAddresses[8]).equals(new BigNumber('0'))); }); });