- Node.js 18+
- npm 9+
- Clone the repository.
- Navigate to the project directory:
cd awesome-aviation-project - Install dependencies (includes Cypress 13.17.0; first run may download the Cypress binary):
npm install
- Headless (all specs):
or:
npm testnpm run cy:run
- Interactive Cypress runner (for debugging):
npm run cy:open
- Run a specific spec:
npx cypress run --spec "cypress/e2e/part1_airportlabs.cy.js" npx cypress run --spec "cypress/e2e/part2_shopping.cy.js"
Part 1 targets https://airportlabs.com/; Part 2 targets https://altex.ro.
- 13.17.0
cypress/e2e/- test specs for assessment partscypress/pageObjects/- page objects and reusable page actionscypress/fixtures/- test data for data-driven scenarioscypress/support/- global support and custom commandscypress.config.js- Cypress configTEST_DESIGN.md- design decisions and tradeoffs
- Part 1: 5 scenarios on
https://airportlabs.com/- section title visibility/style checks on desktop + mobile
- data-driven statistic validation (fixture-based)
- social links validation (including external domain check custom command)
- logo dimension checks + negative assertion
- extra scenario for "Get in Touch" link integrity
- Part 2:
https://altex.roshopping flow- Prefiltered TV list (rating >= 3, price ascending, brand Samsung)
- accessory list filtered to same brand with
rating >= 3, choose lowest price - add both to cart, verify brand-presence in cart items, and validate total
- UI selectors on public sites can change; selectors include fallbacks to reduce fragility.
- Part 2 accessory query uses
Samsung telecomandaas a practical "same-brand accessory" category.