Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.32 KB | None | 0 0
  1. import React from 'react';
  2. import { describe, it } from 'mocha';
  3. import { expect } from 'chai';
  4. import { shallow } from 'enzyme';
  5. import Spin from 'spin.js';
  6.  
  7. import proxyquire from '../../../utils/proxyquire';
  8.  
  9. const { spy, stub } = require('spy-stub');
  10.  
  11. const LoaderPath = 'components/common/loader';
  12. // const spinStub = stub(() => {});
  13. const Loader = proxyquire(LoaderPath, {
  14. 'spin.js': function mockSpin() {
  15. return {
  16. spin: () => {},
  17. stop: () => {}
  18. };
  19. }
  20. });
  21.  
  22. describe('#component - <Loader />', () => {
  23. it('renders spinner when isLoading is true', () => {
  24. const wrapper = shallow(<Loader.unwrappedLoader isLoading type="pageLoader" />);
  25.  
  26. expect(wrapper.find('.page-loader').length).to.equal(1);
  27. expect(wrapper.find('.loader-spinner').length).to.equal(1);
  28. });
  29.  
  30. it('renders spinner when isLoading is true and type is "userActionLoader"', () => {
  31. const wrapper = shallow(
  32. <Loader.unwrappedLoader isLoading type="userActionLoader" className="user-action-class" />
  33. );
  34.  
  35. expect(wrapper.find('.user-action-class').length).to.equal(1);
  36. expect(wrapper.find('.loader-spinner').length).to.equal(1);
  37. });
  38.  
  39. it('renders its children and no spinner when isLoading is false', () => {
  40. const wrapper = shallow(
  41. <Loader.unwrappedLoader isLoading={false} type="pageLoader">
  42. <div>foo</div>
  43. </Loader.unwrappedLoader>
  44. );
  45.  
  46. expect(wrapper.find('.page-loader').length).to.equal(0);
  47. expect(wrapper.find('.loader-spinner').length).to.equal(0);
  48. expect(wrapper.type()).to.equal('div');
  49. expect(wrapper.text()).to.equal('foo');
  50. });
  51.  
  52. it('reacts correctly to changes in isLoading', () => {
  53. const wrapper = shallow(
  54. <Loader.unwrappedLoader isLoading type="pageLoader">
  55. <div>FOO</div>
  56. </Loader.unwrappedLoader>
  57. );
  58.  
  59. expect(wrapper.find('.page-loader').length).to.equal(1);
  60. expect(wrapper.find('.loader-spinner').length).to.equal(1);
  61. expect(wrapper.type()).to.equal('div');
  62.  
  63. wrapper.setProps({ isLoading: false });
  64. wrapper.update();
  65.  
  66. expect(wrapper.find('.page-loader').length).to.equal(0);
  67. expect(wrapper.find('.loader-spinner').length).to.equal(0);
  68. expect(wrapper.type()).to.equal('div');
  69. expect(wrapper.text()).to.equal('FOO');
  70. });
  71.  
  72. // it('', () => {
  73. // const props = {
  74. // isLoading: true,
  75. // isDarkModeEnabled: true
  76. // };
  77. // const wrapper = shallow(<Loader.unwrappedLoader type="pageLoader" {...props} />);
  78. // // wrapper.setProps({ isDarkModeEnabled: true });
  79. //
  80. // const spinner = wrapper.find('.loader-spinner').prop;
  81. // console.log(wrapper);
  82. // console.log('ksksk', wrapper.find('.loader-spinner').length);
  83. // console.log(spinner);
  84. // // const containerStyle = wrapper.get(0).style;
  85. //
  86. // expect(wrapper.find('.loader-spinner').prop('style')).to.deep.equal({ color: '#FFFFFF' });
  87. // // .to.be.equal('#000000');
  88. // });
  89. // it('should change colour on dark mode enabled', () => {
  90. // const props = {
  91. // isLoading: true,
  92. // isDarkModeEnabled: false
  93. // };
  94. // const wrapper = shallow(<Loader.unwrappedLoader {...props} />);
  95. //
  96. // const spinner = wrapper.find('.page-loader');
  97. // expect(spinner.getAttribute('color')).to.be.equal('#000000');
  98. // wrapper.setProps({ isDarkModeEnabled: true });
  99. // expect(spinner.getAttribute('color')).to.be.equal('#FFFFFF');
  100. // });
  101.  
  102. it.only('should change colour on dark mode enabled', () => {
  103. const props = {
  104. isLoading: true,
  105. isDarkModeEnabled: false
  106. };
  107. const expectedConfig = { color: '#FFFFFF' };
  108. // const spinStub = stub(Spin, {});
  109. const spinStub = stub(Spin, 'target', () => {});
  110. // const wrapper = shallow(<Loader.unwrappedLoader {...props} />);
  111. const wrapper = stub(Spin, 'constructor', () => {});
  112. // wrapper.setProps({ isDarkModeEnabled: true });
  113.  
  114. expect(wrapper).to.have.been.called.with(expectedConfig);
  115. });
  116. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement