import assert from 'node:assert/strict'; import { JSDOM } from 'jsdom'; import { collectAmazonDetailImageUrls } from '../src/page-worker/web-injectors/amazon-detail-images'; async function runWithHtml(html: string) { const dom = new JSDOM(html, { url: 'https://www.amazon.com/dp/B0DMNDL5NH' }); const previousDocument = globalThis.document; const previousMouseEvent = globalThis.MouseEvent; Object.assign(globalThis, { document: dom.window.document, MouseEvent: dom.window.MouseEvent, }); try { return await collectAmazonDetailImageUrls(); } finally { Object.assign(globalThis, { document: previousDocument, MouseEvent: previousMouseEvent, }); dom.window.close(); } } async function main() { const scriptUrls = await runWithHtml(` `); assert.deepEqual(scriptUrls, [ 'https://m.media-amazon.com/images/I/first._AC_SL1500_.jpg', 'https://m.media-amazon.com/images/I/second._AC_SL1500_.jpg', ]); const landingUrl = 'https://m.media-amazon.com/images/I/landing._AC_SL1500_.jpg'; const landingUrls = await runWithHtml( ``, ); assert.deepEqual(landingUrls, [landingUrl]); console.log('Amazon detail image parser tests passed.'); } void main();