- 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.
188 lines
5.6 KiB
Markdown
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
|