This repository contains a comprehensive suite of End-to-End (E2E) automated tests for the EasyAppointments reservation system. Designed with a focus on Quality Assurance and reliable software delivery, the tests validate critical user and administrative flows using Cypress.
The test architecture bridges the gap between technical execution and business requirements by mapping automated test cases directly to Behavior-Driven Development (BDD) scenarios.
- Testing Framework: Cypress (JavaScript)
- Methodology: Behavior-Driven Development (BDD) / Gherkin syntax
- Environment Management: Docker & Docker Compose
The test suite covers three primary domains of the application:
- Appointment Reservation (Client-Side)
- End-to-end booking flows for unregistered customers.
- Validation of mandatory input fields and timezone selections.
- Verifying calendar integration and confirmation steps.
- Customers Management (Admin-Side)
- CRUD operations for customer records.
- Search and filtering functionality within the admin dashboard.
- Reservations Management (Admin-Side)
- Calendar interactions, status updates, and rescheduling.
- Dynamic reassignment of appointments to different customers.
- BDD to Code: Test specs (
.cy.js) are directly mapped to human-readable.featurescenarios, ensuring high test coverage and traceability. - Custom Commands: Repeated actions (like date selection algorithms and form filling) are abstracted into Cypress custom commands (e.g.,
cy.datetime(),cy.customer()) for maintainability and clean code. - Headless Stability: Tests are optimized with reliable assertions, clearing of cookies between test instances, and specific DOM targeting to run flawlessly in headless environments.
Node.jsandnpminstalled.DockerandDocker Composeinstalled.
- Start the Application:
Spin up the isolated test environment (MySQL database and application containers) using Docker:
docker-compose up -d- Open the Test Runner:
Launch the Cypress interactive GUI:
npx cypress openAlternatively, run tests in headless mode:
npx cypress run- Teardown:
Once testing is complete, stop and remove the containers:
docker-compose downThis project is licensed under the MIT License. See the LICENCE file for details.