// 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 { shallow } from 'enzyme'; import React from 'react'; import sinon from 'sinon'; import { createApi } from './node.test.js'; import Node from './'; let component; let instance; function render (props = {}) { component = shallow( , { context: { api: createApi() } } ); instance = component.instance(); // console.log(component.debug()); return component; } describe('views/Settings/Node', () => { beforeEach(() => { render(); sinon.spy(instance.store, 'loadMode'); sinon.spy(instance.store, 'loadChain'); }); afterEach(() => { instance.store.loadMode.restore(); instance.store.loadChain.restore(); }); it('renders defaults', () => { expect(component).to.be.ok; }); describe('componentWillMount', () => { beforeEach(() => { return instance.componentWillMount(); }); it('loads the mode in the store', () => { expect(instance.store.loadMode).to.have.been.called; }); it('loads the chain in the store', () => { expect(instance.store.loadChain).to.have.been.called; }); }); describe('components', () => { it('renders a Container component', () => { expect(component.find('Container')).to.have.length(1); }); it('renders a LanguageSelector component', () => { expect(component.find('LanguageSelector')).to.have.length(1); }); it('renders a Features component', () => { expect(component.find('LanguageSelector')).to.have.length(1); }); }); describe('Parity features', () => { describe('mode selector', () => { let select; beforeEach(() => { select = component.find('Dropdown[id="parityModeSelect"]'); sinon.spy(instance.store, 'changeMode'); }); afterEach(() => { instance.store.changeMode.restore(); }); it('renders a mode selector', () => { expect(select).to.have.length(1); }); }); describe('chain selector', () => { let select; beforeEach(() => { select = component.find('Dropdown[id="parityChainSelect"]'); sinon.spy(instance.store, 'changeChain'); }); afterEach(() => { instance.store.changeChain.restore(); }); it('renders a chain selector', () => { expect(select).to.have.length(1); }); }); }); });