fix: correct media event names in AudioPlayer

'paused' -> 'pause', 'loaded' -> 'loadeddata', 'loadeddate' -> 'loadeddata'

These listeners were registering on events that HTMLMediaElement
never fires, so the callbacks were dead. The test hid this because
the mock emitted the same misspelled names.

Fixes #37840
This commit is contained in:
Gautam Kumar 2026-06-25 21:24:39 +05:30
parent 7cb4a30040
commit d1bbc0bb37
2 changed files with 6 additions and 7 deletions

View File

@ -20,7 +20,7 @@ vi.mock('@/service/share', () => ({
textToAudioStream: (...args: unknown[]) => mockTextToAudioStream(...args),
}))
type AudioEventName = 'ended' | 'paused' | 'loaded' | 'play' | 'timeupdate' | 'loadeddate' | 'canplay' | 'error' | 'sourceopen'
type AudioEventName = 'ended' | 'pause' | 'play' | 'timeupdate' | 'loadeddata' | 'canplay' | 'error' | 'sourceopen'
type AudioEventListener = () => void
@ -285,10 +285,9 @@ describe('AudioPlayer', () => {
audio!.emit('play')
audio!.emit('ended')
audio!.emit('error')
audio!.emit('paused')
audio!.emit('loaded')
audio!.emit('pause')
audio!.emit('loadeddata')
audio!.emit('timeupdate')
audio!.emit('loadeddate')
audio!.emit('canplay')
expect(player.callback).toBe(callback)

View File

@ -66,10 +66,10 @@ export default class AudioPlayer {
this.audio.addEventListener('ended', () => {
callback('ended')
}, false)
this.audio.addEventListener('paused', () => {
this.audio.addEventListener('pause', () => {
callback('paused')
}, true)
this.audio.addEventListener('loaded', () => {
this.audio.addEventListener('loadeddata', () => {
callback('loaded')
}, true)
this.audio.addEventListener('play', () => {
@ -78,7 +78,7 @@ export default class AudioPlayer {
this.audio.addEventListener('timeupdate', () => {
callback('timeupdate')
}, true)
this.audio.addEventListener('loadeddate', () => {
this.audio.addEventListener('loadeddata', () => {
callback('loadeddate')
}, true)
this.audio.addEventListener('canplay', () => {