Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React from 'react';
- import { describe, it } from 'mocha';
- import { expect } from 'chai';
- import { shallow } from 'enzyme';
- import Spin from 'spin.js';
- import proxyquire from '../../../utils/proxyquire';
- const { spy, stub } = require('spy-stub');
- const LoaderPath = 'components/common/loader';
- // const spinStub = stub(() => {});
- const Loader = proxyquire(LoaderPath, {
- 'spin.js': function mockSpin() {
- return {
- spin: () => {},
- stop: () => {}
- };
- }
- });
- describe('#component - <Loader />', () => {
- it('renders spinner when isLoading is true', () => {
- const wrapper = shallow(<Loader.unwrappedLoader isLoading type="pageLoader" />);
- expect(wrapper.find('.page-loader').length).to.equal(1);
- expect(wrapper.find('.loader-spinner').length).to.equal(1);
- });
- it('renders spinner when isLoading is true and type is "userActionLoader"', () => {
- const wrapper = shallow(
- <Loader.unwrappedLoader isLoading type="userActionLoader" className="user-action-class" />
- );
- expect(wrapper.find('.user-action-class').length).to.equal(1);
- expect(wrapper.find('.loader-spinner').length).to.equal(1);
- });
- it('renders its children and no spinner when isLoading is false', () => {
- const wrapper = shallow(
- <Loader.unwrappedLoader isLoading={false} type="pageLoader">
- <div>foo</div>
- </Loader.unwrappedLoader>
- );
- expect(wrapper.find('.page-loader').length).to.equal(0);
- expect(wrapper.find('.loader-spinner').length).to.equal(0);
- expect(wrapper.type()).to.equal('div');
- expect(wrapper.text()).to.equal('foo');
- });
- it('reacts correctly to changes in isLoading', () => {
- const wrapper = shallow(
- <Loader.unwrappedLoader isLoading type="pageLoader">
- <div>FOO</div>
- </Loader.unwrappedLoader>
- );
- expect(wrapper.find('.page-loader').length).to.equal(1);
- expect(wrapper.find('.loader-spinner').length).to.equal(1);
- expect(wrapper.type()).to.equal('div');
- wrapper.setProps({ isLoading: false });
- wrapper.update();
- expect(wrapper.find('.page-loader').length).to.equal(0);
- expect(wrapper.find('.loader-spinner').length).to.equal(0);
- expect(wrapper.type()).to.equal('div');
- expect(wrapper.text()).to.equal('FOO');
- });
- // it('', () => {
- // const props = {
- // isLoading: true,
- // isDarkModeEnabled: true
- // };
- // const wrapper = shallow(<Loader.unwrappedLoader type="pageLoader" {...props} />);
- // // wrapper.setProps({ isDarkModeEnabled: true });
- //
- // const spinner = wrapper.find('.loader-spinner').prop;
- // console.log(wrapper);
- // console.log('ksksk', wrapper.find('.loader-spinner').length);
- // console.log(spinner);
- // // const containerStyle = wrapper.get(0).style;
- //
- // expect(wrapper.find('.loader-spinner').prop('style')).to.deep.equal({ color: '#FFFFFF' });
- // // .to.be.equal('#000000');
- // });
- // it('should change colour on dark mode enabled', () => {
- // const props = {
- // isLoading: true,
- // isDarkModeEnabled: false
- // };
- // const wrapper = shallow(<Loader.unwrappedLoader {...props} />);
- //
- // const spinner = wrapper.find('.page-loader');
- // expect(spinner.getAttribute('color')).to.be.equal('#000000');
- // wrapper.setProps({ isDarkModeEnabled: true });
- // expect(spinner.getAttribute('color')).to.be.equal('#FFFFFF');
- // });
- it.only('should change colour on dark mode enabled', () => {
- const props = {
- isLoading: true,
- isDarkModeEnabled: false
- };
- const expectedConfig = { color: '#FFFFFF' };
- // const spinStub = stub(Spin, {});
- const spinStub = stub(Spin, 'target', () => {});
- // const wrapper = shallow(<Loader.unwrappedLoader {...props} />);
- const wrapper = stub(Spin, 'constructor', () => {});
- // wrapper.setProps({ isDarkModeEnabled: true });
- expect(wrapper).to.have.been.called.with(expectedConfig);
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement