- Add dark mode color adjustment helper for category colors - Support multiple motivational quote source URLs - Fix text wrapping for tasks/events to prevent horizontal overflow - Improve someday list item layout for long text - Add CLAUDE.md with semantic versioning and git workflow rules - Update test/doc URLs and planning docs v1.1.0 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
190 lines
5.4 KiB
Markdown
190 lines
5.4 KiB
Markdown
# My Weekly To Do List - Comprehensive Test Plan
|
|
|
|
## Overview
|
|
|
|
This document outlines the comprehensive test strategy for the My Weekly To Do List application, a Next.js-based web application that provides a weekly view for organizing tasks and calendar events with drag-and-drop functionality.
|
|
|
|
## Application Architecture
|
|
|
|
The application follows a standard Next.js 14 architecture with:
|
|
- Server-side rendering with Next.js App Router
|
|
- TypeScript for type safety
|
|
- React components for UI
|
|
- Tailwind CSS for styling
|
|
- Zustand for state management
|
|
- React DnD for drag-and-drop functionality
|
|
|
|
## Core Components
|
|
|
|
1. **Main Pages**:
|
|
- `/` - Redirects to `/tasks`
|
|
- `/tasks` - Main task management page
|
|
|
|
2. **Components**:
|
|
- `WeeklyCalendarView` - Displays tasks in a weekly grid
|
|
- `TaskForm` - Form for adding new tasks
|
|
- `TaskItem` - Individual task display and editing
|
|
- `TaskList` - Container for tasks in a day
|
|
- `CalendarSettings` - Calendar integration settings
|
|
|
|
3. **Key Features**:
|
|
- Weekly task view organized by day
|
|
- Drag and drop between days
|
|
- Calendar integration (Google, Apple)
|
|
- Responsive design
|
|
- Accessible UI (WCAG 2.1 AA compliant)
|
|
|
|
## Test Suites
|
|
|
|
### 1. Authentication Tests
|
|
|
|
#### User Login Flow
|
|
- Navigate to application homepage
|
|
- Enter valid username/password credentials
|
|
- Verify successful authentication and redirection
|
|
- Attempt login with invalid credentials
|
|
- Verify error handling for invalid credentials
|
|
|
|
#### User Registration Flow
|
|
- Navigate to registration page
|
|
- Fill registration form with valid data
|
|
- Verify successful registration and redirection
|
|
- Attempt registration with duplicate email
|
|
- Verify error handling for duplicate emails
|
|
|
|
### 2. Task Management Tests
|
|
|
|
#### Add New Task
|
|
- Navigate to tasks page
|
|
- Fill task form with valid data
|
|
- Submit form and verify task creation
|
|
- Confirm task appears in correct day column
|
|
- Verify form resets after submission
|
|
|
|
#### Edit Existing Task
|
|
- Navigate to tasks page
|
|
- Click edit button on existing task
|
|
- Modify task details and save
|
|
- Verify task updates with new values
|
|
- Confirm changes reflect in daily view
|
|
|
|
#### Delete Task
|
|
- Navigate to tasks page
|
|
- Click delete button on task
|
|
- Verify task removal from list
|
|
- Confirm deleted task no longer appears
|
|
|
|
#### Task Validation
|
|
- Navigate to task creation form
|
|
- Submit form without required fields
|
|
- Verify validation error messages
|
|
- Submit form with invalid time format
|
|
- Confirm time validation errors
|
|
|
|
### 3. Weekly View Navigation Tests
|
|
|
|
#### Week Navigation Controls
|
|
- Navigate to weekly view
|
|
- Click 'Previous Week' button
|
|
- Verify display moves to previous week
|
|
- Click 'Next Week' button
|
|
- Verify display moves to next week
|
|
|
|
#### Keyboard Navigation
|
|
- Navigate to weekly view
|
|
- Press Left Arrow key
|
|
- Verify week navigation moves backward
|
|
- Press Right Arrow key
|
|
- Verify week navigation moves forward
|
|
|
|
### 4. Drag and Drop Tests
|
|
|
|
#### Task Drag and Drop Between Days
|
|
- Navigate to weekly view
|
|
- Drag task from one day column to another
|
|
- Verify task drops correctly
|
|
- Confirm task appears in new day column
|
|
- Verify task data integrity
|
|
|
|
#### Drag and Drop Edge Cases
|
|
- Try dragging task to same day
|
|
- Verify no action occurs or repositioning
|
|
- Try dragging non-existent task
|
|
- Verify graceful failure handling
|
|
|
|
### 5. Calendar Integration Tests
|
|
|
|
#### Calendar Settings Modal
|
|
- Navigate to calendar settings
|
|
- Open calendar settings modal
|
|
- Configure calendar integration settings
|
|
- Verify settings save successfully
|
|
- Confirm integration status updates
|
|
|
|
## Test Strategy
|
|
|
|
### Happy Path Testing
|
|
- Execute primary user flows in sequence
|
|
- Verify all expected elements are present
|
|
- Validate successful completion of operations
|
|
|
|
### Edge Case Testing
|
|
- Test boundary conditions for inputs
|
|
- Handle invalid data gracefully
|
|
- Test unexpected user interactions
|
|
- Verify error messages are informative
|
|
|
|
### Negative Testing
|
|
- Attempt invalid operations
|
|
- Provide invalid inputs
|
|
- Test without required permissions
|
|
- Verify graceful degradation
|
|
|
|
### Accessibility Testing
|
|
- Verify WCAG 2.1 AA compliance
|
|
- Test keyboard navigation
|
|
- Check screen reader compatibility
|
|
- Validate proper ARIA attributes
|
|
|
|
## Technical Implementation Details
|
|
|
|
### Test Framework
|
|
- Playwright for end-to-end testing
|
|
- TypeScript for type safety
|
|
- Parallel test execution for efficiency
|
|
|
|
### Test Structure
|
|
- Each test has clear title and steps
|
|
- Specific expected outcomes defined
|
|
- Independent test cases that can run in any order
|
|
- Comprehensive error handling and validation
|
|
|
|
## Assumptions
|
|
|
|
1. Application runs on localhost:3001 (development server)
|
|
2. All components are properly rendered
|
|
3. Network connectivity allows for API calls
|
|
4. Required environment variables are configured
|
|
5. Users have basic computer literacy for interactions
|
|
|
|
## Success Criteria
|
|
|
|
1. All test cases pass with expected outcomes
|
|
2. UI elements respond appropriately to user actions
|
|
3. Data consistency is maintained throughout operations
|
|
4. Error handling prevents application crashes
|
|
5. Performance meets acceptable thresholds
|
|
|
|
## Limitations
|
|
|
|
1. Some tests may require mock API endpoints
|
|
2. Calendar integration tests may require real account credentials
|
|
3. Some drag-and-drop behavior might be environment-dependent
|
|
4. Accessibility tests may require manual verification tools
|
|
|
|
## Future Enhancements
|
|
|
|
1. Add API integration tests for backend services
|
|
2. Implement performance testing for large datasets
|
|
3. Expand cross-browser compatibility testing
|
|
4. Add mobile-specific testing scenarios |