content: // 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 <http://www.gnu.org/licenses/>.
  
  import BigNumber from 'bignumber.js';
  import React from 'react';
  import { shallow } from 'enzyme';
  import sinon from 'sinon';
  
  import Api from '~/api';
  
  import TxRow from './txRow';
  
  const api = new Api({ execute: sinon.stub() });
  
  const STORE = {
    dispatch: sinon.stub(),
    subscribe: sinon.stub(),
    getState: () => {
      return {
        nodeStatus: {
          netVersion: '42'
        },
        personal: {
          accounts: {
            '0x123': {
              address: '0x123'
            }
          },
          contracts: {
            '0x999': {
              address: '0x999'
            }
          }
        }
      };
    }
  };
  
  function render (props) {
    return shallow(
      <TxRow
        store={ STORE }
        { ...props }
      />,
      { context: { api } }
    ).find('TxRow').shallow({ context: { api } });
  }
  
  describe('ui/TxList/TxRow', () => {
    describe('rendering', () => {
      it('renders defaults', () => {
        const block = {
          timestamp: new Date()
        };
        const tx = {
          blockNumber: new BigNumber(123),
          from: '0x234',
          hash: '0x123456789abcdef0123456789abcdef0123456789abcdef',
          to: '0x123',
          value: new BigNumber(1)
        };
  
        expect(render({ address: '0x123', block, netVersion: '42', tx })).to.be.ok;
      });
  
      it('renders account links', () => {
        const block = {
          timestamp: new Date()
        };
        const tx = {
          blockNumber: new BigNumber(123),
          from: '0x234',
          hash: '0x123456789abcdef0123456789abcdef0123456789abcdef',
          to: '0x123',
          value: new BigNumber(1)
        };
  
        const element = render({ address: '0x123', block, netVersion: '42', tx });
  
        expect(element.find('Link').get(1).props.to).to.equal('/accounts/0x123');
      });
  
      it('renders address links', () => {
        const block = {
          timestamp: new Date()
        };
        const tx = {
          blockNumber: new BigNumber(123),
          from: '0x234',
          hash: '0x123456789abcdef0123456789abcdef0123456789abcdef',
          to: '0x456',
          value: new BigNumber(1)
        };
  
        const element = render({ address: '0x123', block, netVersion: '42', tx });
  
        expect(element.find('Link').get(1).props.to).to.equal('/addresses/0x456');
      });
  
      it('renders contract links', () => {
        const block = {
          timestamp: new Date()
        };
        const tx = {
          blockNumber: new BigNumber(123),
          from: '0x234',
          hash: '0x123456789abcdef0123456789abcdef0123456789abcdef',
          to: '0x999',
          value: new BigNumber(1)
        };
  
        const element = render({ address: '0x123', block, netVersion: '42', tx });
  
        expect(element.find('Link').get(1).props.to).to.equal('/contracts/0x999');
      });
    });
  });
  