-
Notifications
You must be signed in to change notification settings - Fork 0
Test Strategy & Analysis
Anass Rach edited this page Sep 27, 2025
·
1 revision
Based on DOM and network inspection, the Smashburger website (https://dev.smashburger.com) is built with:
- Core Frameworks: Next.js (React), React, Tailwind CSS
-
Data Management: Likely React Query (via
dehydratedState) -
Third-Party Integrations:
- Google Tag Manager, Google Analytics
- Google Maps API (location services)
- Google reCAPTCHA (bot protection)
- Braze (customer engagement)
- TrustArc (cookie consent)
- Qualtrics (survey)
- Font Awesome (icons)
- Infrastructure: Cloudflare (CDN), Google Fonts, AWS S3 (assets)
- Dev Tools: TypeScript, ESLint/Prettier
This stack implies modern, scalable, and component-driven front-end architecture.
-
GET /api/location/search?query=80246β Search restaurants by ZIP code. -
GET /api/location/menuβ Fetch menu by location. -
GET /api/locationβ Retrieve location details.
-
POST /api/basketβ Create a new basket (requiresVendorId). -
GET /api/basketβ Retrieve basket. -
POST /api/basket/productsβ Add products with options. -
GET /api/basket/delivery-modeβ Delivery/pickup options. -
POST /api/basket/validateβ Basket validation. -
GET /api/basket/freedompay-iframe?billingMethod=creditcardβ Payment iframe
GET /_next/data/.../menu/smashburgers/create-your-own.jsonGET /_next/data/.../cart.jsonGET /_next/data/.../cart/checkout.json
-
GET https://maps.googleapis.com/maps/api/...β Google Maps API
Implication: UI tests heavily rely on backend APIs. Failures may originate in backend rather than UI. Hybrid API+UI tests or API health monitoring could reduce flakiness.
- Scope: Focus on UI automation with Playwright + TypeScript, minimal framework.
- Primary Flow: E2E burger ordering β pickup order via βCreate Your Own Burgerβ page.
-
Data Setup: Use ZIP code
80246, select the first restaurant. - Validation Points: Ensure order details are consistent across Cart, Checkout, and Order Details pages.
- Design: Page Object Model (POM), modular code, fixtures for setup, utilities for reusability.
-
Resilience: Prefer
data-testid/ID locators, handle dynamic elements properly. - Quality: Parallel execution, headless runs, screenshot capture on failures.