// Copyright 2015-2017 Parity Technologies (UK) Ltd. // This file is part of Parity. // Parity is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Parity is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Parity. If not, see . import BigNumber from 'bignumber.js'; import { shallow } from 'enzyme'; import React from 'react'; import sinon from 'sinon'; import apiutil from '@parity/api/util'; import Balance from './balance'; const ADDRESS = '0x123456789abcdef0123456789abcdef0123456789abcdef'; const TOKENS = { 'eth': { tag: 'ETH' }, 'gav': { tag: 'GAV', format: 1 }, 'tst': { tag: 'TST', format: 1 } }; const BALANCE = { 'eth': new BigNumber(122), 'gav': new BigNumber(345), 'tst': new BigNumber(0) }; let api; let store; let component; function createStore () { store = { dispatch: sinon.stub(), subscribe: sinon.stub(), getState: () => { return { balances: { [ADDRESS]: BALANCE }, tokens: TOKENS }; } }; return store; } function createApi () { api = { dappsUrl: 'http://testDapps:1234/', util: apiutil }; return api; } function render (props = {}) { component = shallow( , { context: { api: createApi(), store: createStore() } } ).find('Balance').shallow(); console.log(component.debug()); return component; } describe('ui/Balance', () => { beforeEach(() => { render(); }); it('renders defaults', () => { expect(component).to.be.ok; }); it('passes the specified className', () => { expect(component.hasClass('testClass')).to.be.true; }); it('renders all the non-zero balances', () => { expect(component.find('TokenImage')).to.have.length(2); }); });