video-ad-sdk
Version:
VAST/VPAID SDK that allows video ads to be played on top of any player
34 lines (27 loc) • 1.22 kB
text/typescript
import {linearEvents} from '../../../../../tracker'
import {onPlayPause} from '../onPlayPause'
const {pause, resume} = linearEvents
test('onPlayPause must call the callback with start at the video start with pause when paused and with resume then the video gets resumed', () => {
const callback = jest.fn()
const videoElement = document.createElement('video')
const disconnect = onPlayPause({videoElement} as any, callback)
videoElement.dispatchEvent(new Event('play'))
expect(callback).toHaveBeenCalledTimes(0)
callback.mockClear()
videoElement.dispatchEvent(new Event('play'))
expect(callback).toHaveBeenCalledTimes(0)
videoElement.dispatchEvent(new Event('pause'))
expect(callback).toHaveBeenCalledTimes(1)
expect(callback).toHaveBeenCalledWith(pause)
callback.mockClear()
videoElement.dispatchEvent(new Event('pause'))
expect(callback).toHaveBeenCalledTimes(0)
videoElement.dispatchEvent(new Event('play'))
expect(callback).toHaveBeenCalledTimes(1)
expect(callback).toHaveBeenCalledWith(resume)
disconnect()
callback.mockClear()
videoElement.dispatchEvent(new Event('pause'))
videoElement.dispatchEvent(new Event('play'))
expect(callback).toHaveBeenCalledTimes(0)
})