import React from 'react'; import { render, shallow } from 'enzyme'; import LoadingOverlay from 'react-loading-overlay'; import overlayFactory from '../index.js'; describe('overlayFactory', () => { let wrapper; const createTable = () => ( { [1, 2].map(row => ( ))}
column1 column2
{ row }test
); describe('when loading is false', () => { beforeEach(() => { const tableElm = createTable(); const Overlay = overlayFactory()(false); wrapper = shallow({ tableElm }); }); it('should rendering Overlay component correctly', () => { const overlay = wrapper.find(LoadingOverlay); expect(wrapper.length).toBe(1); expect(overlay.length).toBe(1); expect(overlay.prop('active')).toBeFalsy(); }); }); describe('when loading is true', () => { beforeEach(() => { const tableElm = createTable(); const Overlay = overlayFactory()(true); wrapper = render({ tableElm }); }); it('should rendering Overlay component correctly', () => { expect(wrapper.length).toBe(1); }); }); describe('when options is given', () => { const options = { spinner: true, background: 'red' }; beforeEach(() => { const tableElm = createTable(); const Overlay = overlayFactory(options)(false); wrapper = shallow({ tableElm }); }); it('should rendering Overlay component with options correctly', () => { const overlay = wrapper.find(LoadingOverlay); expect(wrapper.length).toBe(1); expect(overlay.length).toBe(1); expect(overlay.prop('active')).toBeFalsy(); Object.keys(options).forEach((key) => { expect(overlay.prop(key)).toEqual(options[key]); }); }); }); });