====== Testing Guide for the Administrative Section of the Pond Reservation System ====== ===== 1. Login ===== === Test Case: Verify Login Functionality === Steps: * Navigate to the login page. * Enter valid credentials (username and password). * Click the "Login" button. Expected Result: * User should be redirected to the reservations list. Negative Test Cases: * Enter invalid credentials and verify that an error message is displayed. * Leave the username or password field empty and verify that appropriate validation messages are displayed. ==== 2. Reservation List ==== === Test Case: Verify Reservation List Display and Filtering === Steps: * Navigate to the reservation list page. * Verify that the list contains: * Client name * Reserved spots * Date of reservation * Button to view the detail of the reservation * Test the filtering functionality: * Use the search field to filter reservations by client name. * Use the filter to sort reservations by type (e.g., reservation, event). * Use the filter to sort reservations by status (e.g., new, confirmed, canceled). * Use the filter to sort reservations by date. Expected Result: * The reservation list should display all the necessary information. * Filtering should work correctly and update the list based on the applied filters. ===== 3. Reservation Detail ===== ==== Test Case: Verify Reservation Detail View and Actions ==== Steps: * From the reservation list, click on the "Detail" button for a reservation. * Verify that the detail view includes all information about the reservation. Check the status of the reservation: * If the reservation is in the "New" state, verify that the "Confirm" button is enabled. * Verify that the "Decline" button is available in all states except "Done". Confirm the reservation: * Click the "Confirm" button. * Verify that the reservation status is updated to "Confirmed by owner". * Verify that the customer is notified via email about the confirmation. Decline the reservation: * Click the "Decline" button. * Enter a note explaining the reason for the decline (optional). * Confirm the decline action. * Verify that the reservation status is updated to "Declined". * Verify that the customer is notified via email about the decline, with the note included if provided. Expected Result: * The detail view should display all the information about the reservation. * The "Confirm" button should only be enabled for reservations in the "New" state. * The "Decline" button should be available in all states except "Done". * Confirming the reservation should update its status to "Confirmed by owner" and notify the customer via email. * Declining the reservation should update its status to "Declined" and notify the customer via email, including any provided note. ===== 4. Detail of Account ===== ==== Test Case: Verify Account Detail View ==== Steps: * Navigate to the account detail page. * Verify that all fields are read-only and display the correct information about the logged-in account. Expected Result: * All information about the logged-in account should be displayed correctly in read-only fields. ===== 5. Advanced Pond Options ===== ==== Test Case: Verify Navigation to Advanced Pond Options ==== Steps: * Navigate to the advanced pond options page. * Verify that there are three navigation options available: * Create Event * Create Reservation * Pond Occupancy Expected Result: * The user should be able to navigate to "Create Event", "Create Reservation", and "Pond Occupancy" from this page. ===== 6. Create Event ===== ==== Test Case: Verify Event Creation Functionality ==== Steps: * Navigate to the "Create Event" page. * Enter the event details: * Date of event * Spots included in the event * Name of event * Save the event. Expected Result: * If there are existing reservations or events on the selected date, a modal should appear allowing the user to override them. * If overridden, all clients whose reservations were canceled should receive a notification email. The event should be created successfully and listed in the system. ===== 7. Create Reservation ===== ==== Test Case: Verify Manual Reservation Creation Functionality ==== Steps: * Navigate to the "Create Reservation" page. * Enter the reservation details: * Client name * Spots included in the reservation * Email * Phone number * Date * Save the reservation. Expected Result: * If there is an existing event or reservation on the selected date, a modal should appear allowing the user to override them. * If overridden, all affected clients should receive a notification email. * The reservation should be created successfully, the client should receive a confirmation email, and the reservation status should be "Confirmed by owner". ===== 8. Pond Occupancy ===== ==== Test Case: Verify Pond Occupancy Calendar ==== Steps: * Navigate to the "Pond Occupancy" page. * View the calendar and verify that it displays the occupancy status of all spots. Expected Result: * The calendar should correctly display which spots are occupied and indicate whether they are reserved or part of an event. ===== 9. Logout ===== ==== Test Case: Verify Logout Functionality ==== Steps: * From any page, click on the menu button. * Select "Logout" from the menu options. Expected Result: * The user should be logged out successfully. * The login screen should be displayed. * The user should not have access to any administrative functionalities without logging in again.