# End-to-End and Unit Testing Documentation for Home Monitor ## Test Description The Home Monitor project uses Cypress to automate both End-to-End (E2E) and unit tests. These tests ensure that the main features of the application work correctly, both from the user’s and the developer’s perspectives. ### Types of Tests - **End-to-End (E2E) Tests**: Simulate real user behavior on the web interface. They check critical user flows, data display, error handling, and the responsiveness of the application. - **Unit Tests**: Verify the correct functioning of JavaScript/TypeScript components and functions in isolation. ### Test Structure - E2E tests are located in `web-app/cypress/e2e/` - Unit tests are located in `web-app/cypress/unit/` - Custom commands and global setup are in `web-app/cypress/support/` - Cypress configuration is in `web-app/cypress.config.ts` ### Example Scenarios Covered - Application loading and display of main sections - Control panel functionality (buttons, filters) - User, room, and device selection - Display and update of measurement charts - Handling of error or empty data states - Responsive layout for mobile and desktop ## How to Run the Tests ### Prerequisites - Node.js (v14+) - npm or yarn - Chrome browser ### Install Dependencies ```bash cd project-softweng/web-app npm install ``` ### Run unit Tests