import React from 'react' import test from 'ava' import sinon from 'sinon' import { configure, shallow } from 'enzyme' import Adapter from 'enzyme-adapter-react-16' import ReactPlayer from '../../src/ReactPlayer' configure({ adapter: new Adapter() }) const COMMON_METHODS = ['getDuration', 'getCurrentTime', 'getSecondsLoaded', 'getInternalPlayer'] for (const method of COMMON_METHODS) { test(`${method}()`, t => { const instance = shallow().instance() instance.refs.player({ [method]: () => 123 }) t.true(instance[method]() === 123) }) test(`${method}() - null`, t => { const instance = shallow().instance() t.true(instance[method]() === null) }) } test('getInternalPlayer() - default', t => { const instance = shallow().instance() const getInternalPlayer = sinon.fake.returns('abc') instance.refs.player({ getInternalPlayer }) t.true(instance.getInternalPlayer() === 'abc') t.true(getInternalPlayer.calledOnceWith('player')) }) test('seekTo()', t => { const instance = shallow().instance() instance.refs.player({ seekTo: sinon.fake() }) instance.seekTo(5) t.true(instance.player.seekTo.calledOnce) t.true(instance.player.seekTo.calledWith(5)) }) test('seekTo() - null', t => { const instance = shallow().instance() t.true(instance.seekTo() === null) }) test('onReady()', t => { const onReady = sinon.fake() const instance = shallow().instance() instance.handleReady() t.true(onReady.calledWith(instance)) }) test('refs', t => { const instance = shallow().instance() instance.refs.player('abc') instance.refs.wrapper('def') t.true(instance.player === 'abc') t.true(instance.wrapper === 'def') })