- Test Directory: C:\tools\ComfyDesktopBackup\TestEnv
- Mock Source: Test ComfyUI installation with sample files
- Expected Results: All operations should complete without errors
- Create mock ComfyUI installation directory
- Populate with test files (configs, workflows, models)
- Verify script can read source path
- Clean any existing Backups/ and Logs/ folders
Menu: RunBackup.bat → Option 1
Prerequisites:
- Git installed and in PATH
- No existing GitRepo folder
- Mock source directory has files
Steps:
- Run backup with Git type
- Verify GitRepo folder created
- Verify .git folder exists
- Verify files copied to GitRepo
- Verify git commit created
- Check log file for success message
Expected Results:
- GitRepo initialized successfully
- All source files copied
- Git commit with timestamp created
- Log shows "Git backup completed. Commit: [hash]"
- No errors in output
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 1
Prerequisites:
- Test 1.1 passed
- Modify some files in source
Steps:
- Change a file in source directory
- Run backup again
- Verify new commit created
- Verify changes reflected in GitRepo
Expected Results:
- New commit with latest changes
- Git history shows multiple commits
- No duplicate files
- Log shows success
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 1
Prerequisites:
- Test 1.2 passed
- No changes to source
Steps:
- Run backup without any changes
- Verify message about no changes
Expected Results:
- Log shows "No changes detected since last backup"
- No new commit created
- No errors
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 2
Prerequisites:
- No existing Archives folder
- Mock source directory has files
Steps:
- Run backup with Archive type
- Verify Archives folder created
- Verify ZIP file created with timestamp name
- Verify ZIP contains all source files
- Check log file for success
Expected Results:
- Archive folder created
- ZIP file: ComfyUI-Backup_YYYY-MM-DD_HHMMSS.zip
- ZIP contains all files from source
- Log shows size in MB
- No errors
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 2
Prerequisites:
- Test 1.4 passed
Steps:
- Wait 2 seconds (for different timestamp)
- Run backup again
- Verify multiple ZIP files exist
Expected Results:
- Two distinct ZIP files with different timestamps
- Both contain source files
- No overwriting of previous backup
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 3
Prerequisites:
- Test 1.1 and 1.2 passed (multiple Git commits exist)
Steps:
- Run ListBackups mode
- Verify Git commits displayed
Expected Results:
- Shows "Git Backups:" section
- Lists commits with hash, time ago, message
- Shows last 20 commits max
- No errors
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 3
Prerequisites:
- Test 1.4 and 1.5 passed (multiple archives exist)
Steps:
- Run ListBackups mode
- Verify archives displayed
Expected Results:
- Shows "Archive Backups:" section
- Lists ZIP files with name, size, date
- Shows last 20 archives max
- No errors
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 3
Prerequisites:
- Clean Backups folder (no backups exist)
Steps:
- Run ListBackups mode
Expected Results:
- Gracefully handles empty backup folders
- No crashes or errors
- Clear message or empty lists
Pass Criteria: ✅ / ❌
Menu: QuickRestore.bat → Option 1
Prerequisites:
- Test 1.1 and 1.2 passed (multiple commits)
- Note a specific commit hash
Steps:
- Modify source files
- Run restore with specific commit hash
- Confirm restore
- Verify files restored to that commit state
Expected Results:
- Safety backup created in %TEMP%
- Source files replaced with commit version
- Log shows restore success
- Safety backup path displayed
- Git repo returns to master after restore
Pass Criteria: ✅ / ❌
Menu: QuickRestore.bat → Option 2
Prerequisites:
- Test 1.4 passed (archive exists)
- Note archive filename
Steps:
- Modify source files
- Run restore with archive filename
- Confirm restore
- Verify files restored from archive
Expected Results:
- Safety backup created in %TEMP%
- Source files replaced with archive contents
- Log shows restore success
- Safety backup path displayed
Pass Criteria: ✅ / ❌
Menu: QuickRestore.bat → Option 1
Prerequisites:
- Git backups exist
Steps:
- Run restore with fake commit hash "abc123xyz"
- Verify error handling
Expected Results:
- Error message: "Commit hash not found"
- No changes to source files
- No corruption
- Graceful failure
Pass Criteria: ✅ / ❌
Menu: QuickRestore.bat → Option 2
Prerequisites:
- Archive backups exist
Steps:
- Run restore with non-existent filename
- Verify error handling
Expected Results:
- Error message: "Archive not found"
- No changes to source files
- Graceful failure
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 4 (or QuickRestore.bat → Option 3)
Prerequisites:
- Test 1.1 and 1.2 passed (at least 2 commits)
Steps:
- Run rollback with Git type
- Confirm rollback
- Verify source restored to previous commit
Expected Results:
- Safety backup created
- Source restored to HEAD~1
- Log shows rollback success
- Previous commit hash displayed
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 4
Prerequisites:
- Test 1.4 passed (archive exists)
Steps:
- Run rollback with Archive type
- Confirm rollback
- Verify source restored to latest archive
Expected Results:
- Safety backup created
- Source restored from latest ZIP
- Log shows rollback success
- Archive filename displayed
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 4
Prerequisites:
- Clean Backups folder
Steps:
- Run rollback
- Verify error handling
Expected Results:
- Error message: "No backups found" or similar
- No changes to source
- Graceful failure
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 5 (or CreateSchedule mode)
Prerequisites:
- Administrator privileges
- No existing scheduled task
Steps:
- Run CreateSchedule with Git type
- Set time to 02:00
- Verify task created in Task Scheduler
Expected Results:
- Task "ComfyUI-DailyBackup" created
- Task set to run daily at 02:00
- Task points to correct script
- Task uses correct parameters
- Log shows success
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 5
Prerequisites:
- Test 5.1 passed (task exists)
Steps:
- Run CreateSchedule again with different time
- Verify old task removed, new task created
Expected Results:
- Warning about existing task
- Old task removed
- New task created with new time
- No duplicate tasks
Pass Criteria: ✅ / ❌
Manual Test
Prerequisites:
- Test 5.1 passed
Steps:
- Manually run task from Task Scheduler
- Wait for completion
- Check Logs folder for new entry
- Verify backup was created
Expected Results:
- Task runs successfully
- Backup created
- Log file updated
- Task shows "Last Run Result: Success"
Pass Criteria: ✅ / ❌
Menu: CreateShortcut mode
Prerequisites:
- None
Steps:
- Run CreateShortcut with Git type
- Verify shortcut created in Start Menu
Expected Results:
- Shortcut at: %APPDATA%\Microsoft\Windows\Start Menu\Programs\ComfyUI Backup.lnk
- Shortcut points to script
- Shortcut has correct arguments
- Log shows success
Pass Criteria: ✅ / ❌
Manual Test
Prerequisites:
- Test 6.1 passed
Steps:
- Open Start Menu
- Search for "ComfyUI Backup"
- Click shortcut
- Verify backup runs
Expected Results:
- Shortcut appears in Start Menu
- Clicking runs backup
- Backup completes successfully
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 5
Prerequisites:
- Clean environment
- Git installed
Steps:
- Run Install mode
- Choose Git backup (option 1)
- Set time 02:00
- Complete installation
Expected Results:
- Directories created
- Scheduled task created
- Start Menu shortcut created
- Initial backup performed
- Success message displayed
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 5
Prerequisites:
- Clean environment
Steps:
- Run Install mode
- Choose Archive backup (option 2)
- Set time 03:00
- Complete installation
Expected Results:
- Directories created
- Scheduled task created (Archive type)
- Start Menu shortcut created
- Initial backup performed (ZIP file)
- Success message displayed
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 1
Prerequisites:
- Mock source directory deleted or renamed
Steps:
- Run backup
- Verify error handling
Expected Results:
- Error message: "Source path does not exist"
- No crash
- Log shows error
- Graceful exit
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 1
Prerequisites:
- Git not in PATH (temporarily rename git.exe or modify PATH)
Steps:
- Run Git backup
- Verify error handling
Expected Results:
- Error message about Git not found
- Suggestion to install Git or use Archive
- No crash
- Graceful exit
Pass Criteria: ✅ / ❌
Simulation Required
Expected Results:
- Graceful handling of disk full errors
- Clear error message
- No corruption
Pass Criteria: ✅ / ❌
Menu: Various
Prerequisites:
- Make Backups folder read-only
Steps:
- Run backup
- Verify error handling
Expected Results:
- Error message about permissions
- No crash
- Log shows error
Pass Criteria: ✅ / ❌
Menu: Any operation
Prerequisites:
- Clean Logs folder
Steps:
- Run any backup operation
- Verify log file created
Expected Results:
- Log file: Logs\ComfyUI-Backup_YYYY-MM.log
- File contains timestamped entries
- Shows operation type and result
Pass Criteria: ✅ / ❌
Menu: Various operations across months
Prerequisites:
- Operations in different months
Steps:
- Verify separate log files for different months
Expected Results:
- One log file per month
- Correct naming: ComfyUI-Backup_YYYY-MM.log
- All operations logged correctly
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 1 (multiple times)
Prerequisites:
- Create 35+ Git commits
Steps:
- Create many backups (35+)
- Verify old commits pruned
Expected Results:
- Only last 30 commits kept
- Automatic pruning message in log
- Git history consolidated
- No errors
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat → Option 2
Prerequisites:
- Create archives with old timestamps (mock)
Steps:
- Create archives older than 14 days
- Run new backup
- Verify old archives deleted
Expected Results:
- Archives older than 14 days removed
- Log shows cleanup message
- Recent archives preserved
Pass Criteria: ✅ / ❌
Menu: QuickRestore.bat
Prerequisites:
- Valid backup exists
Steps:
- Run restore operation
- Check %TEMP% for safety backup
Expected Results:
- Safety backup created: %TEMP%\ComfyUI-PreRestore_*
- Contains current files before restore
- Path displayed to user
- Safety backup complete before restore starts
Pass Criteria: ✅ / ❌
Menu: RunBackup.bat
Prerequisites:
- None
Steps:
- Run RunBackup.bat
- Test each menu option (1-6)
- Verify all options work
Expected Results:
- Menu displays correctly
- All options functional
- Invalid input handled
- Exit works
Pass Criteria: ✅ / ❌
Menu: QuickRestore.bat
Prerequisites:
- Backups exist
Steps:
- Run QuickRestore.bat
- Test each menu option (1-4)
- Verify confirmation prompts work
Expected Results:
- Menu displays correctly
- Backups listed first
- Confirmation required
- Cancel works
- All restore types work
Pass Criteria: ✅ / ❌
| Test ID | Test Name | Status | Notes |
|---|---|---|---|
| 1.1 | Git Backup (First) | ⏳ | |
| 1.2 | Git Backup (Subsequent) | ⏳ | |
| 1.3 | Git Backup (No Changes) | ⏳ | |
| 1.4 | Archive Backup (First) | ⏳ | |
| 1.5 | Archive Backup (Multiple) | ⏳ | |
| 2.1 | List Git Backups | ⏳ | |
| 2.2 | List Archive Backups | ⏳ | |
| 2.3 | List No Backups | ⏳ | |
| 3.1 | Restore Git | ⏳ | |
| 3.2 | Restore Archive | ⏳ | |
| 3.3 | Invalid Git Hash | ⏳ | |
| 3.4 | Invalid Archive | ⏳ | |
| 4.1 | Rollback Git | ⏳ | |
| 4.2 | Rollback Archive | ⏳ | |
| 4.3 | Rollback No Backups | ⏳ | |
| 5.1 | Create Scheduled Task | ⏳ | |
| 5.2 | Update Scheduled Task | ⏳ | |
| 5.3 | Task Execution | ⏳ | |
| 6.1 | Create Shortcut | ⏳ | |
| 6.2 | Shortcut Execution | ⏳ | |
| 7.1 | Install Git | ⏳ | |
| 7.2 | Install Archive | ⏳ | |
| 8.1 | Missing Source | ⏳ | |
| 8.2 | No Git | ⏳ | |
| 8.3 | Disk Space | ⏳ | |
| 8.4 | Permissions | ⏳ | |
| 9.1 | Log Creation | ⏳ | |
| 9.2 | Log Rotation | ⏳ | |
| 10.1 | Git Pruning | ⏳ | |
| 10.2 | Archive Cleanup | ⏳ | |
| 11.1 | Safety Backup | ⏳ | |
| 12.1 | RunBackup Menu | ⏳ | |
| 12.2 | QuickRestore Menu | ⏳ |