Viewing File: /home/ubuntu/voice-assistant-frontend/node_modules/react-h5-audio-player/src/CurrentTime.test.js
import React from 'react'
import { shallow } from 'enzyme'
import CurrentTime from './CurrentTime'
describe('CurrentTime', () => {
it('should call add/removeEventListener and change currentTime properly', () => {
const wrapper = shallow(<CurrentTime defaultCurrentTime="00:00" audio={null} timeFormat="auto" />)
expect(wrapper.state('currentTime')).toBe('00:00')
const audio = new Audio()
const audioAddEventListener = jest.spyOn(audio, 'addEventListener')
const audioRemoveEventListener = jest.spyOn(audio, 'removeEventListener')
wrapper.setProps({ audio })
const handleAudioCurrentTimeChange = wrapper.instance().handleAudioCurrentTimeChange
expect(audioAddEventListener).toHaveBeenCalledTimes(2)
expect(audioAddEventListener).toHaveBeenNthCalledWith(1, 'timeupdate', handleAudioCurrentTimeChange)
expect(audioAddEventListener).toHaveBeenNthCalledWith(2, 'loadedmetadata', handleAudioCurrentTimeChange)
audio.currentTime = 12
handleAudioCurrentTimeChange({ target: audio })
expect(wrapper.state('currentTime')).toBe('00:12')
wrapper.unmount()
expect(audioRemoveEventListener).toHaveBeenCalledTimes(2)
expect(audioRemoveEventListener).toHaveBeenNthCalledWith(1, 'timeupdate', handleAudioCurrentTimeChange)
expect(audioRemoveEventListener).toHaveBeenNthCalledWith(2, 'loadedmetadata', handleAudioCurrentTimeChange)
})
it('should not throw when unmount even if no audio object passed in', () => {
const wrapper = shallow(<CurrentTime defaultCurrentTime="00:00" audio={null} />)
wrapper.setProps({ audio: null })
expect(() => {
wrapper.unmount()
}).not.toThrow()
})
})
Back to Directory
File Manager