mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-14 00:06:17 -08:00
refactor(core): CORE-02 type emitter maps and fix nested once dispatch
This commit is contained in:
1 parent
d3c695024a
commit
362c616998
21 files changed
+943
-72
No files matched your search
@@ -0,0 +1,28 @@
|
||||
import { expect, test } from './fixtures.js'
|
||||
|
||||
for (const core of ['published', 'candidate']) {
|
||||
test(`${core}: emitter event names and once across nested dispatch`, async ({ page }) => {
|
||||
await page.goto(`/test/player.html?core=${core}&chapter=published`)
|
||||
const result = await page.evaluate(() => {
|
||||
const emitter = new window.Artplayer.Emitter()
|
||||
const freshKeys = Object.keys(emitter)
|
||||
let reservedCalls = 0
|
||||
let errorName
|
||||
try {
|
||||
emitter.on('__proto__', () => reservedCalls++).emit('__proto__').off('__proto__')
|
||||
}
|
||||
catch (error) { errorName = error.name }
|
||||
let nested = false
|
||||
let onceCalls = 0
|
||||
emitter.on('value', () => {
|
||||
if (!nested) {
|
||||
nested = true
|
||||
emitter.emit('value')
|
||||
}
|
||||
}).once('value', () => onceCalls++)
|
||||
emitter.emit('value')
|
||||
return { freshKeys, reservedCalls, errorName, onceCalls }
|
||||
})
|
||||
expect(result).toEqual({ freshKeys: [], reservedCalls: core === 'published' ? 0 : 1, errorName: core === 'published' ? 'TypeError' : undefined, onceCalls: core === 'published' ? 2 : 1 })
|
||||
})
|
||||
}
|
||||
Reference in new issue
Block a user