Skip to main content
Glama

Amazon Order History CSV Download MCP

by marcusquinn
order-list.test.ts3.17 kB
/** * Integration tests for order list extraction. * Uses Playwright to test against HTML fixtures. */ import { chromium, Browser, Page } from "playwright"; import { readFileSync } from "fs"; import { join } from "path"; // Note: Integration tests require Playwright and are skipped in CI without browsers describe("order list extraction (integration)", () => { let browser: Browser; let page: Page; beforeAll(async () => { // Skip if no browser available (CI without playwright install) try { browser = await chromium.launch({ headless: true }); } catch { console.log( "Playwright browser not available, skipping integration tests", ); return; } }); afterAll(async () => { if (browser) { await browser.close(); } }); beforeEach(async () => { if (browser) { page = await browser.newPage(); } }); afterEach(async () => { if (page) { await page.close(); } }); describe("UK order card parsing", () => { it("extracts order details from UK format HTML", async () => { if (!browser) { return; // Skip if no browser } const fixtureHtml = readFileSync( join(__dirname, "fixtures/order-card-uk.html"), "utf-8", ); // Set page content to our fixture await page.setContent( `<!DOCTYPE html><html><body>${fixtureHtml}</body></html>`, ); // Find order card const orderCard = page.locator('[data-component="orderCard"]'); expect(await orderCard.count()).toBe(1); // Check date extraction (UK format) const dateText = await page.textContent("body"); expect(dateText).toContain("14 November 2024"); // Check order ID extraction expect(dateText).toContain("123-4567890-1234567"); // Check total extraction expect(dateText).toContain("£49.99"); // Check item count (2 purchasedItems containers) const purchasedItems = page.locator('[data-component="purchasedItems"]'); expect(await purchasedItems.count()).toBe(2); // Check delivery status const deliveryStatus = page.locator(".delivery-box__primary-text"); expect(await deliveryStatus.textContent()).toBe("Delivered 16 November"); // Check address extraction from script template const addressScript = page.locator( 'script[id^="shipToData-shippingAddress-"]', ); const addressHtml = await addressScript.innerHTML(); expect(addressHtml).toContain("John Smith"); expect(addressHtml).toContain("123 High Street"); expect(addressHtml).toContain("LONDON"); expect(addressHtml).toContain("SW1A 1AA"); // Check payment method const paymentType = await page .locator('[data-testid="method-details-name"]') .textContent(); const paymentLastFour = await page .locator('[data-testid="method-details-number"]') .textContent(); expect(paymentType).toBe("Visa"); expect(paymentLastFour).toBe("****1234"); // Check Subscribe & Save expect(dateText).toContain("Auto-delivered: Every 1 month"); }); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/marcusquinn/amazon-order-history-csv-download-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server