Skip to content

ppatrik-dev/cypress-testing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Automated E2E Testing Suite for EasyAppointments

Project Overview

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.

Tech Stack & Tools

  • Testing Framework: Cypress (JavaScript)
  • Methodology: Behavior-Driven Development (BDD) / Gherkin syntax
  • Environment Management: Docker & Docker Compose

Testing Scope

The test suite covers three primary domains of the application:

  1. 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.
  2. Customers Management (Admin-Side)
    • CRUD operations for customer records.
    • Search and filtering functionality within the admin dashboard.
  3. Reservations Management (Admin-Side)
    • Calendar interactions, status updates, and rescheduling.
    • Dynamic reassignment of appointments to different customers.

Architecture & Approach

  • BDD to Code: Test specs (.cy.js) are directly mapped to human-readable .feature scenarios, 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.

How to Run Locally

Prerequisites

  • Node.js and npm installed.
  • Docker and Docker Compose installed.

Setup Steps

  1. Start the Application:

Spin up the isolated test environment (MySQL database and application containers) using Docker:

docker-compose up -d
  1. Open the Test Runner:

Launch the Cypress interactive GUI:

npx cypress open

Alternatively, run tests in headless mode:

npx cypress run
  1. Teardown:

Once testing is complete, stop and remove the containers:

docker-compose down

License

This project is licensed under the MIT License. See the LICENCE file for details.

About

E2E testing for reservation system

Topics

Resources

License

Stars

Watchers

Forks

Contributors