import React from 'react' import assert from 'assert' import { createMockStore } from 'redux-test-utils' import { mountWithRouter } from '../../../../../test/lib/render-helpers' import NetworkDropdown from '../network-dropdown' import { DropdownMenuItem } from '../components/dropdown' import NetworkDropdownIcon from '../components/network-dropdown-icon' describe('Network Dropdown', () => { let wrapper describe('NetworkDropdown in appState in false', () => { const mockState = { metamask: { provider: { type: 'test', }, }, appState: { networkDropdown: false, }, } const store = createMockStore(mockState) beforeEach(() => { wrapper = mountWithRouter( ) }) it('checks for network droppo class', () => { assert.equal(wrapper.find('.network-droppo').length, 1) }) it('renders only one child when networkDropdown is false in state', () => { assert.equal(wrapper.children().length, 1) }) }) describe('NetworkDropdown in appState is true', () => { const mockState = { metamask: { provider: { 'type': 'test', }, frequentRpcList: [ 'http://localhost:7545', ], }, appState: { 'networkDropdownOpen': true, }, } const store = createMockStore(mockState) beforeEach(() => { wrapper = mountWithRouter( , ) }) it('renders 7 DropDownMenuItems ', () => { assert.equal(wrapper.find(DropdownMenuItem).length, 7) }) it('checks background color for first NetworkDropdownIcon', () => { assert.equal(wrapper.find(NetworkDropdownIcon).at(0).prop('backgroundColor'), '#29B6AF') // Main Ethereum Network Teal }) it('checks background color for second NetworkDropdownIcon', () => { assert.equal(wrapper.find(NetworkDropdownIcon).at(1).prop('backgroundColor'), '#ff4a8d') // Ropsten Red }) it('checks background color for third NetworkDropdownIcon', () => { assert.equal(wrapper.find(NetworkDropdownIcon).at(2).prop('backgroundColor'), '#7057ff') // Kovan Purple }) it('checks background color for fourth NetworkDropdownIcon', () => { assert.equal(wrapper.find(NetworkDropdownIcon).at(3).prop('backgroundColor'), '#f6c343') // Rinkeby Yellow }) it('checks background color for fifth NetworkDropdownIcon', () => { assert.equal(wrapper.find(NetworkDropdownIcon).at(4).prop('innerBorder'), '1px solid #9b9b9b') }) it('checks dropdown for frequestRPCList from state ', () => { assert.equal(wrapper.find(DropdownMenuItem).at(5).text(), '✓http://localhost:7545') }) it('checks background color for sixth NetworkDropdownIcon', () => { assert.equal(wrapper.find(NetworkDropdownIcon).at(5).prop('innerBorder'), '1px solid #9b9b9b') }) }) })