34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
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([]), [])
|
|
})
|