import React from 'react'; import {shallow} from 'enzyme'; import Preview, {TagPreview} from './Preview'; describe('', function () { it('renders without crashing ', function () { const wrapper = shallow(); wrapper.unmount(); }); it('click event triggered', () => { const func = jest.fn(); const wrapper = shallow(); prepareViewBinding(func); wrapper.find('.videopreview').simulate('click'); //callback to open player should have called expect(func).toHaveBeenCalledTimes(1); }); it('picture rendered correctly', done => { const mockSuccessResponse = 'testsrc'; const mockJsonPromise = Promise.resolve(mockSuccessResponse); const mockFetchPromise = Promise.resolve({ text: () => mockJsonPromise }); global.fetch = jest.fn().mockImplementation(() => mockFetchPromise); const wrapper = shallow(); // now called 1 times expect(global.fetch).toHaveBeenCalledTimes(1); process.nextTick(() => { // received picture should be rendered into wrapper expect(wrapper.find('.previewimage').props().src).not.toBeNull(); // check if preview title renders correctly expect(wrapper.find('.previewtitle').text()).toBe('test'); global.fetch.mockClear(); done(); }); }); it('spinner loads correctly', function () { const wrapper = shallow(); // expect load animation to be visible expect(wrapper.find('.loadAnimation')).toHaveLength(1); }); }); describe('', function () { it('renders without crashing ', function () { const wrapper = shallow(); wrapper.unmount(); }); // check if preview title renders correctly it('renders title', () => { const wrapper = shallow(); expect(wrapper.find('.tagpreviewtitle').text()).toBe('test'); }); it('click event triggered', function () { const func = jest.fn(); const wrapper = shallow(); wrapper.setProps({ categorybinding: () => { func(); } }); // first call of fetch is getting of available tags expect(func).toHaveBeenCalledTimes(0); wrapper.find('.videopreview').simulate('click'); // now called 1 times expect(func).toHaveBeenCalledTimes(1); }); });