# My Weekly To Do List - Comprehensive Test Plan ## Application Overview Comprehensive test plan for the My Weekly To Do List application, covering authentication, task management, weekly view navigation, calendar integration, and drag-and-drop functionality. ## Test Scenarios ### 1. Authentication Tests **Seed:** `tests/seed.auth.spec.ts` #### 1.1. User Login Flow **File:** `tests/auth/login-flow.spec.ts` **Steps:** 1. Navigate to the application homepage - expect: Application loads successfully - expect: User is redirected to login page or dashboard 2. Enter valid username and password in login form - expect: Login form accepts valid credentials - expect: User is authenticated and redirected to dashboard 3. Attempt to login with invalid credentials - expect: Login form shows error message for invalid credentials - expect: User remains on login page #### 1.2. User Registration Flow **File:** `tests/auth/registration-flow.spec.ts` **Steps:** 1. Navigate to registration page - expect: Registration form is displayed - expect: Form contains all required fields 2. Fill in registration form with valid data - expect: Registration form accepts valid data - expect: User is registered and redirected to dashboard 3. Attempt to register with duplicate email - expect: Registration form shows duplicate email error - expect: User remains on registration page ### 2. Task Management Tests **Seed:** `tests/seed.tasks.spec.ts` #### 2.1. Add New Task **File:** `tests/tasks/add-task.spec.ts` **Steps:** 1. Navigate to the tasks page - expect: Tasks page loads successfully - expect: Task form is visible 2. Fill task form with valid data - expect: Task form accepts valid inputs - expect: Form validates required fields 3. Submit the task form - expect: New task is added to the list - expect: Task appears in the correct day column - expect: Form resets to default state #### 2.2. Edit Existing Task **File:** `tests/tasks/edit-task.spec.ts` **Steps:** 1. Navigate to the tasks page - expect: Tasks page is loaded - expect: Existing tasks are visible 2. Click edit button on an existing task - expect: Task enters edit mode - expect: Editable fields are displayed 3. Modify task details and save - expect: Task is updated with new values - expect: Task reflects changes in daily view #### 2.3. Delete Task **File:** `tests/tasks/delete-task.spec.ts` **Steps:** 1. Navigate to the tasks page - expect: Tasks page is loaded - expect: Task list is visible 2. Click delete button on a task - expect: Confirmation dialog appears or task is immediately deleted - expect: Task is removed from the list 3. Verify deleted task is no longer visible - expect: Deleted task no longer appears in the task list - expect: UI reflects successful deletion #### 2.4. Task Validation **File:** `tests/tasks/task-validation.spec.ts` **Steps:** 1. Navigate to the task creation form - expect: Task form is displayed - expect: All form fields are accessible 2. Submit form without required fields - expect: Validation error messages appear - expect: Form prevents submission without required fields 3. Submit form with invalid time format - expect: Time validation error appears - expect: Form prevents submission with invalid time ### 3. Weekly View Navigation Tests **Seed:** `tests/seed.weekly.spec.ts` #### 3.1. Week Navigation Controls **File:** `tests/weekly/navigate-week.spec.ts` **Steps:** 1. Navigate to the weekly view - expect: Weekly calendar view displays - expect: Current week is shown 2. Click 'Previous Week' button - expect: Display moves to previous week - expect: Week range updates correctly 3. Click 'Next Week' button - expect: Display moves to next week - expect: Week range updates correctly #### 3.2. Keyboard Navigation **File:** `tests/weekly/keyboard-nav.spec.ts` **Steps:** 1. Navigate to the weekly view - expect: Weekly calendar view displays - expect: Keyboard navigation is enabled 2. Press Left Arrow key - expect: Week navigation moves backward - expect: Current week updates appropriately 3. Press Right Arrow key - expect: Week navigation moves forward - expect: Current week updates appropriately ### 4. Drag and Drop Tests **Seed:** `tests/seed.dragdrop.spec.ts` #### 4.1. Task Drag and Drop Between Days **File:** `tests/dragdrop/drop-task.spec.ts` **Steps:** 1. Navigate to the weekly view - expect: Weekly calendar view displays - expect: Tasks are visible in their assigned days 2. Drag a task from one day column to another - expect: Task is draggable - expect: Task drops correctly into target day 3. Verify task position changed in UI - expect: Task appears in new day column - expect: Task data remains intact #### 4.2. Drag and Drop Edge Cases **File:** `tests/dragdrop/drop-edge-cases.spec.ts` **Steps:** 1. Try dragging task to same day - expect: No action occurs or repositioning happens - expect: Task maintains its position 2. Try dragging non-existent task - expect: Drag operation fails gracefully - expect: No unexpected errors occur ### 5. Calendar Integration Tests **Seed:** `tests/seed.calendar.spec.ts` #### 5.1. Calendar Settings Modal **File:** `tests/calendar/settings-modal.spec.ts` **Steps:** 1. Navigate to calendar settings - expect: Calendar settings modal opens - expect: All calendar integration options are visible 2. Configure calendar integration settings - expect: Settings save successfully - expect: Integration status updates