FIX: Support new layout on Amazon product pages (#16091)

Some product pages on Amazon are using a new HTML structure, meaning the previous Onebox engine was unable to gather the price and/or description. This change should allow these pages to be Oneboxed.
This commit is contained in:
jbrw
2022-03-04 18:31:53 -05:00
committed by GitHub
parent d760fd4074
commit fc30669db2
3 changed files with 10537 additions and 3 deletions

View File

@ -215,4 +215,34 @@ describe Onebox::Engine::AmazonOnebox do
end
end
context "alternate page layout response from Amazon" do
let(:link) { "https://www.amazon.com/dp/B07FQ7M16H" }
let(:html) { described_class.new(link).to_html }
before do
stub_request(:get, "https://www.amazon.com/dp/B07FQ7M16H")
.to_return(status: 200, body: onebox_response("amazon-alternate"))
stub_request(:get, "https://www.amazon.com/Lnchett-Nibbler-Quality-Attachment-Straight/dp/B07FQ7M16H")
.to_return(status: 200, body: onebox_response("amazon-alternate"))
end
describe "#to_html" do
it "includes image" do
expect(html).to include("https://m.media-amazon.com/images/I/71y4BRqNP7L._AC_SL1500_.jpg")
end
it "includes description" do
expect(html).to include("Drill Attachment for Straight Curve and Circle Cutting, Maximum 14 Gauge Steel")
end
it "includes price" do
expect(html).to include("$37.99")
end
it "includes title" do
expect(html).to include("Quality Nibbler Drill Attachment...")
end
end
end
end