@splode/obake
Version:
Check merchants for deals.
38 lines (32 loc) • 1.06 kB
text/typescript
import { Browser } from "puppeteer";
import puppeteer from "puppeteer-extra";
import StealthPlugin from "puppeteer-extra-plugin-stealth";
import { parsePrice } from "../../../src/strings";
describe("The Zavvi merchant checker", () => {
jest.setTimeout(3e4);
let browser: Browser;
beforeAll(async () => {
browser = await puppeteer.use(StealthPlugin()).launch();
});
afterAll(async () => {
await browser.close();
});
test("fetches the price for a given good URL", async () => {
const page = await browser.newPage();
await page.goto(
"https://us.zavvi.com/toys-lego/lego-technic-lamborghini-sian-fkp-37-car-model-42115/12700567.html",
{
waitUntil: "networkidle2",
}
);
const priceString = await page.$eval(
'[data-product-price="price"]',
(el) => {
return el.textContent?.trim();
}
);
expect(typeof priceString).toBe("string");
expect(typeof parsePrice(String(priceString))).toBe("number");
expect(parsePrice(String(priceString))).not.toBeNaN();
});
});