import { JSDOM } from 'jsdom';
import { collectAmazonNextPageUrl } from '../src/page-worker/web-injectors/amazon-search-pagination';
const test = async (name: string, html: string, expected: string | null) => {
const dom = new JSDOM(html, { url: 'https://www.amazon.com/s?k=security+camera&page=1' });
const previousDocument = globalThis.document;
const previousWindow = globalThis.window;
Object.assign(globalThis, { document: dom.window.document, window: dom.window });
try {
const actual = await collectAmazonNextPageUrl();
if (actual !== expected) throw new Error(`${name}: expected ${expected}, received ${actual}`);
} finally {
Object.assign(globalThis, { document: previousDocument, window: previousWindow });
dom.window.close();
}
};
const main = async () => {
await test(
'active next page',
'',
'https://www.amazon.com/s?k=security+camera&page=2',
);
await test(
'disabled next page',
'',
null,
);
await test('missing next page', 'No pagination', null);
console.log('Amazon search pagination tests passed.');
};
void main();