You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
					
						
							6.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							6.7 KiB
						
					
					
				ContactImportView.vue Migration Testing Checklist
Migration Details
- Component: src/views/ContactImportView.vue
 - Migration Date: 2025-07-06
 - Migration Type: Database Operations + Logging to PlatformServiceMixin
 - Priority: Medium
 - Author: Matthew Raymer
 
Migration Changes
- ✅ Removed legacy imports: 
logConsoleAndDb,databaseUtil,PlatformServiceFactory - ✅ Added PlatformServiceMixin integration
 - ✅ Converted database operations to mixin methods
 - ✅ Updated logging to use 
this.$logAndConsole() - ✅ Removed unused helper functions and interfaces
 
Platform Testing Requirements
Web Platform Testing
Test URLs for Manual Testing
# Basic contact import page
http://localhost:3000/contact-import
# URL parameter import (single contact)
http://localhost:3000/contact-import?contacts=[{"did":"did:test:123","name":"Test User","notes":"Test contact via URL"}]
# URL parameter import (multiple contacts)
http://localhost:3000/contact-import?contacts=[{"did":"did:test:123","name":"Alice"},{"did":"did:test:456","name":"Bob"}]
# Manual JWT input testing (paste JWT into textarea)
http://localhost:3000/contact-import
Functional Test Cases
1. Basic Page Load
- Navigate to 
/contact-import - Page loads without errors
 - No console errors displayed
 - Manual JWT input textarea is visible
 - "Check Import" button is present
 
2. URL Parameter Import (Single Contact)
- Navigate to URL with single contact parameter
 - Contact displays in import list
 - Contact is pre-selected for import
 - "Make my activity visible" checkbox is available
 - "Import Selected Contacts" button is present
 
3. URL Parameter Import (Multiple Contacts)
- Navigate to URL with multiple contacts parameter
 - All contacts display in import list
 - All contacts are pre-selected for import
 - Individual contact selection works
 - Bulk import functionality works
 
4. Manual JWT Input
- Paste valid JWT into textarea
 - Click "Check Import" button
 - Valid JWT displays contacts for import
 - Invalid JWT shows appropriate error message
 
5. Duplicate Contact Detection
- Import contact that already exists
 - System detects duplicate correctly
 - Shows "Existing" label for duplicate
 - Displays field differences (if any)
 - Duplicate is not pre-selected for import
 
6. Contact Import Process
- Select contacts for import
 - Click "Import Selected Contacts"
 - Loading indicator appears
 - Success message displays
 - Redirects to contacts page
 - Imported contacts appear in contacts list
 
7. Visibility Setting
- Check "Make my activity visible" checkbox
 - Import contacts
 - Verify visibility is set for imported contacts
 - Test with visibility setting disabled
 
8. Error Handling
- Test with malformed JWT
 - Test with empty JWT
 - Test network failure scenarios
 - Test with invalid contact data format
 - Verify error messages display appropriately
 
9. Database Operations Testing
- Import new contacts - verify database insertion
 - Update existing contacts - verify database update
 - Check contact data persistence after app reload
 - Verify contact relationships are maintained
 
10. Logging Validation
- Open browser developer tools
 - Trigger error scenarios
 - Verify errors appear in console with proper formatting
 - Check database logs table for stored errors
 - Verify log entries include appropriate context
 
Technical Validation
Browser Developer Tools
- Console shows no errors during normal operation
 - Console shows properly formatted error messages when errors occur
 - Network tab shows appropriate API calls
 - Application tab shows IndexedDB updates
 
Database Verification
- Open Application > IndexedDB > TimeSafari database
 - Verify contacts table updates correctly
 - Check logs table for error entries
 - Verify data structure matches expected format
 
Performance Validation
- Page loads within reasonable time
 - Import operations complete without freezing UI
 - Large contact lists (10+) import efficiently
 - No memory leaks during extended use
 
Desktop Platform Testing
- Test Electron app functionality
 - Verify database operations work in Electron context
 - Test file system access (if applicable)
 - Verify native desktop integrations
 
Mobile Platform Testing
- Test iOS app via Capacitor
 - Test Android app via Capacitor
 - Verify mobile-specific features
 - Test deep linking functionality
 
Test Data Templates
Single Contact JSON
[{"did":"did:test:single","name":"Single Test User","notes":"Test contact for single import"}]
Multiple Contacts JSON
[
  {"did":"did:test:alice","name":"Alice Johnson","notes":"First test contact"},
  {"did":"did:test:bob","name":"Bob Smith","notes":"Second test contact"},
  {"did":"did:test:charlie","name":"Charlie Brown","notes":"Third test contact"}
]
Malformed Data (Error Testing)
[{"invalid":"data","missing":"did"}]
Expected Outcomes
Successful Import
- Contacts appear in main contacts list
 - Database contains new contact entries
 - Success notification displays
 - Redirect to contacts page occurs
 
Duplicate Handling
- Existing contacts show "Existing" label
 - Field differences are highlighted
 - User can choose to update or skip
 - System prevents duplicate entries
 
Error Scenarios
- Malformed data shows clear error messages
 - Network failures are handled gracefully
 - Invalid JWTs display appropriate warnings
 - Console logs contain debugging information
 
Sign-Off Checklist
Web Platform ✅/❌
- Chrome: Tested by [Name] on [Date]
 - Firefox: Tested by [Name] on [Date]
 - Safari: Tested by [Name] on [Date]
 - Notes: [Any platform-specific issues or observations]
 
Desktop Platform ✅/❌
- Windows: Tested by [Name] on [Date]
 - macOS: Tested by [Name] on [Date]
 - Linux: Tested by [Name] on [Date]
 - Notes: [Any platform-specific issues or observations]
 
Mobile Platform ✅/❌
- iOS: Tested by [Name] on [Date]
 - Android: Tested by [Name] on [Date]
 - Notes: [Any platform-specific issues or observations]
 
Final Sign-Off
- All platforms tested and working
 - No regressions identified
 - Performance is acceptable
 - Migration completed by: [Name] on [Date]
 
Known Issues/Limitations
- Document any known issues discovered during testing
 - Note any platform-specific limitations
 - Record any workarounds implemented
 
Notes
- Include any additional observations
 - Record performance metrics if applicable
 - Note any suggestions for future improvements