fix(amazon-shopping): verify prime and delivery filters
This commit is contained in:
@@ -62,4 +62,34 @@ describe("extractSearchPage", () => {
|
||||
assert.equal(extracted.products.length, 1);
|
||||
assert.equal(extracted.products[0]?.price, undefined);
|
||||
});
|
||||
|
||||
it("detects Prime badges even when visible delivery text omits the word Prime", () => {
|
||||
const extracted = extractSearchPage(`
|
||||
<div data-asin="B0PRIME123">
|
||||
<h2><a href="/dp/B0PRIME123">Prime Sofa Bed</a></h2>
|
||||
<span class="a-price"><span class="a-offscreen">$299.99</span></span>
|
||||
<span aria-label="4.4 out of 5 stars"></span>
|
||||
<span aria-label="246 ratings"></span>
|
||||
<i class="a-icon a-icon-prime" aria-label="Amazon Prime"></i>
|
||||
<span>FREE delivery Tomorrow</span>
|
||||
</div>
|
||||
`, "https://www.amazon.com/s?k=sofa+bed");
|
||||
|
||||
assert.equal(extracted.products.length, 1);
|
||||
assert.equal(extracted.products[0]?.delivery?.prime, true);
|
||||
assert.equal(extracted.products[0]?.delivery?.free, true);
|
||||
assert.match(extracted.products[0]?.delivery?.display ?? "", /Tomorrow/);
|
||||
});
|
||||
|
||||
it("does not treat Prime in a product title as Prime delivery", () => {
|
||||
const extracted = extractSearchPage(`
|
||||
<div data-asin="B0TITLE123">
|
||||
<h2><a href="/dp/B0TITLE123">Prime Sofa Bed</a></h2>
|
||||
<span>FREE delivery Tomorrow</span>
|
||||
</div>
|
||||
`, "https://www.amazon.com/s?k=sofa+bed");
|
||||
|
||||
assert.equal(extracted.products.length, 1);
|
||||
assert.equal(extracted.products[0]?.delivery?.prime, false);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user