import React from 'react'; import { shallow } from 'enzyme'; import makeLoadable from '../makeLoadable'; import { LoadingIndicatorProps } from '../LoadingIndicator'; describe('components/loading-indicator/makeLoadable', () => { let TestComponent: React.ComponentType; beforeEach(() => { TestComponent = () =>
blah
; }); test('should render BaseComponent when isLoading is false', () => { const LoadableComponent = makeLoadable(TestComponent); const wrapper = shallow(); expect(wrapper.find('TestComponent').length).toEqual(1); expect(wrapper.find('LoadingIndicator').length).toEqual(0); }); test('should pass props down to BaseComponent', () => { const LoadableComponent = makeLoadable(TestComponent); const props = { className: 'foo', hello: '123', }; const wrapper = shallow(); expect(wrapper.find('TestComponent').prop('hello')).toEqual('123'); expect(wrapper.find('TestComponent').prop('className')).toEqual('foo'); }); test('should render LoadingIndicator when isLoading is true', () => { const LoadableComponent = makeLoadable(TestComponent); const wrapper = shallow(); expect(wrapper.find('TestComponent').length).toEqual(0); expect(wrapper.find('LoadingIndicator').length).toEqual(1); }); test('should pass loadingIndicatorPorps to LoadingIndicator', () => { const LoadableComponent = makeLoadable(TestComponent); const wrapper = shallow( , ); expect(wrapper.find('LoadingIndicator').prop('className')).toEqual('foobar'); }); });