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([]), []) })