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 = () => (
| column1 |
column2 |
{ [1, 2].map(row => (
| { 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]);
});
});
});
});