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();