My-Weekly-ToDo-List/spec/my-weekly-todo-list-test-plan.md
mARTin d92a8c7210 feat: add task actions (notes/delete) and refine animation logic
- Added 'onDelete' and 'onNotes' support to TaskItem.
- Implemented hover actions (Delete and Notes icons) for tasks.
- Added Notes Modal for editing task markdown content.
- Simplified navigation animation to remove blank flash (single-phase slide-in).
- Fixed syntax error in updateTask function.
- Updated styles for modal and task actions.
2026-02-01 12:25:53 +01:00

188 lines
5.6 KiB
Markdown

# 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