import {shallow} from "enzyme"; import React from "react"; import Player from "./Player"; describe('', function () { it('renders without crashing ', function () { const wrapper = shallow(); wrapper.unmount(); }); it('plyr insertion', function () { const wrapper = shallow(); wrapper.setState({ sources: [ { src: '/tstvid.mp4', type: 'video/mp4', size: 1080, } ] }); expect(wrapper.find("r")).toHaveLength(1); }); function simulateLikeButtonClick(){ const wrapper = shallow(); // initial fetch for getting movie data expect(global.fetch).toHaveBeenCalledTimes(1); wrapper.find('.videoactions').find("button").first().simulate('click'); // fetch for liking expect(global.fetch).toHaveBeenCalledTimes(2); return wrapper; } it('likebtn click', done => { global.fetch = global.prepareFetchApi({result: 'success'}); global.console.error = jest.fn(); simulateLikeButtonClick(); process.nextTick(() => { expect(global.fetch).toHaveBeenCalledTimes(2); expect(global.console.error).toHaveBeenCalledTimes(0); global.fetch.mockClear(); done(); }); }); it('errored likebtn click', done => { global.fetch = global.prepareFetchApi({result: 'nosuccess'}); global.console.error = jest.fn(); simulateLikeButtonClick(); process.nextTick(() => { // refetch is called so fetch called 3 times expect(global.fetch).toHaveBeenCalledTimes(2); expect(global.console.error).toHaveBeenCalledTimes(2); global.fetch.mockClear(); done(); }); }); it('show tag popup', function () { const wrapper = shallow(); expect(wrapper.find("AddTagPopup")).toHaveLength(0); // todo dynamic button find without index wrapper.find('.videoactions').find("button").at(1).simulate('click'); // addtagpopup should be showing now expect(wrapper.find("AddTagPopup")).toHaveLength(1); }); it('test delete button', done => { const wrapper = shallow(); global.fetch = prepareFetchApi({result: "success"}); wrapper.find('.videoactions').find("button").at(2).simulate('click'); process.nextTick(() => { // refetch is called so fetch called 3 times expect(global.fetch).toHaveBeenCalledTimes(1); expect(wrapper.instance().props.viewbinding.returnToLastElement).toHaveBeenCalledTimes(1); global.fetch.mockClear(); done(); }); }); it('hide click ', function () { const wrapper = shallow(); const func = jest.fn(); wrapper.setProps({ viewbinding: { returnToLastElement: () => { func() } } }); expect(func).toHaveBeenCalledTimes(0); wrapper.find('.closebutton').simulate('click'); // addtagpopup should be showing now expect(func).toHaveBeenCalledTimes(1); }); it('inserts Tags correctly', function () { const wrapper = shallow(); expect(wrapper.find("Tag")).toHaveLength(0); wrapper.setState({ tags: [ {tag_name: 'first'}, {tag_name: 'second'} ] }); expect(wrapper.find("Tag")).toHaveLength(2); }); it('inserts tag quickadd correctly', function () { generatetag(); }); it('test click of quickadd tag btn', done => { const wrapper = generatetag(); global.fetch = prepareFetchApi({result: 'success'}); // render tag subcomponent const tag = wrapper.find("Tag").first().dive(); tag.simulate('click'); process.nextTick(() => { expect(global.fetch).toHaveBeenCalledTimes(1); global.fetch.mockClear(); done(); }); }); it('test failing quickadd', done => { const wrapper = generatetag(); global.fetch = prepareFetchApi({result: 'nonsuccess'}); global.console.error = jest.fn(); // render tag subcomponent const tag = wrapper.find("Tag").first().dive(); tag.simulate('click'); process.nextTick(() => { expect(global.console.error).toHaveBeenCalledTimes(2); global.fetch.mockClear(); done(); }); }); function generatetag(){ const wrapper = shallow(); expect(wrapper.find("Tag")).toHaveLength(0); wrapper.setState({ suggesttag: [ {tag_name: 'first', tag_id: 1}, ] }); expect(wrapper.find("Tag")).toHaveLength(1); return wrapper; } });