图片失败后继续加载阅读页并支持单图重试
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import test from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import {startImages, settleImage, retryImage} from '../src/utils/progressiveImages.js'
|
||||
|
||||
test('a failed image does not prevent later pages from loading', () => {
|
||||
const urls = ['first', 'second', 'third']
|
||||
const items = startImages(urls)
|
||||
settleImage(items, urls, items[0], true)
|
||||
assert.equal(items[0].failed, true)
|
||||
assert.equal(items[1].url, 'second')
|
||||
settleImage(items, urls, items[1])
|
||||
assert.equal(items[2].url, 'third')
|
||||
})
|
||||
|
||||
test('retry does not append a duplicate page and bypasses a failed URL cache', () => {
|
||||
const urls = ['first?gid=1', 'second', 'third']
|
||||
const items = startImages(urls)
|
||||
settleImage(items, urls, items[0], true)
|
||||
retryImage(items[0])
|
||||
assert.equal(items[0].src, 'first?gid=1&retry=1')
|
||||
settleImage(items, urls, items[0])
|
||||
assert.equal(items.length, 2)
|
||||
assert.equal(items[0].failed, false)
|
||||
})
|
||||
|
||||
test('late image events cannot append content after changing pages', () => {
|
||||
const old = startImages(['old'])[0]
|
||||
const urls = ['new', 'next']
|
||||
const items = startImages(urls)
|
||||
settleImage(items, urls, old)
|
||||
assert.equal(items.length, 1)
|
||||
assert.deepEqual(startImages([]), [])
|
||||
})
|
||||
Reference in New Issue
Block a user