7.2 KiB
Manual Smoke Test Documentation
Author: Matthew Raymer
Version: 1.0.0
Created: 2025-01-27 18:00:00 UTC
Last Updated: 2025-01-27 18:00:00 UTC
Overview
This document provides step-by-step instructions for manually testing the TimeSafari Daily Notification Plugin across all target platforms (Android, iOS, Electron). This smoke test validates basic functionality and ensures the plugin works correctly in the TimeSafari PWA environment.
Prerequisites
- TimeSafari PWA project set up and running
- Plugin integrated into TimeSafari PWA
- Development environment configured for all platforms
- Test devices/emulators available for each platform
Test Execution Log
Latest Test Run
Date: 2025-01-27 18:00:00 UTC
Commit/Tag: main
(pre-integration)
Platforms Covered: Android (Emulator), iOS (Simulator), Electron (Desktop)
Status: ⏳ Pending - To be executed after integration
Electron Platform Testing
Setup
- Start TimeSafari PWA in development mode
- Open Chrome browser
- Navigate to local development URL
- Open browser developer tools
Test Steps
1. Plugin Installation Verification
- Plugin loads without console errors
- Plugin API is accessible via
window.DailyNotification
- TypeScript definitions are available
2. Basic Notification Scheduling
- Schedule a daily notification for 1 minute from now
- Verify notification appears in browser
- Test notification interaction (click/dismiss)
- Verify callback functions are called
3. Permission Handling
- Request notification permissions
- Handle permission denied gracefully
- Test permission re-request flow
4. Storage Integration
- Verify notification data persists in native storage
- Test data retrieval after page refresh
- Validate storage adapter integration
Expected Results
- All notifications appear on schedule
- No console errors or warnings
- Data persists across page refreshes
- Permission flows work correctly
Android Platform Testing
Setup
- Build TimeSafari PWA for Android
- Install on Android device/emulator
- Enable developer options and USB debugging
- Connect device or start emulator
Test Steps
1. Plugin Registration
- Plugin registers with Capacitor bridge
- Native Android code compiles and loads
- No runtime crashes or errors
2. Notification Channel Creation
- Notification channels are created on first run
- Channel settings are applied correctly
- Channel importance levels work as expected
3. Background Scheduling
- WorkManager schedules background tasks
- Notifications fire at scheduled times
- Background execution works with Doze/App Standby
4. Permission Handling
- Request notification permissions
- Handle permission denied gracefully
- Test battery optimization exemption request
Expected Results
- Notifications appear on schedule
- Background tasks execute reliably
- No crashes or ANRs
- Permission flows work correctly
iOS Platform Testing
Setup
- Build TimeSafari PWA for iOS
- Install on iOS device/simulator
- Enable developer mode
- Configure code signing
Test Steps
1. Plugin Registration
- Plugin registers with Capacitor bridge
- Native iOS code compiles and loads
- No runtime crashes or errors
2. Notification Center Integration
- UNUserNotificationCenter delegates are set
- Notification categories are registered
- Background modes are configured
3. Background Task Scheduling
- BGTaskScheduler registers background tasks
- Notifications fire at scheduled times
- Background execution works within iOS limits
4. Permission Handling
- Request notification permissions
- Handle provisional authorization
- Test permission upgrade/downgrade flows
Expected Results
- Notifications appear on schedule
- Background tasks execute within iOS limits
- No crashes or memory warnings
- Permission flows work correctly
Cross-Platform Validation
Data Consistency
- Notification data syncs across platforms
- Storage adapter works consistently
- Timezone handling is consistent
API Consistency
- Plugin API behaves identically across platforms
- Callback functions work the same way
- Error handling is consistent
Performance
- Plugin initialization is fast (< 1 second)
- Memory usage is reasonable
- Battery impact is minimal
Test Results Template
## Test Run Results
**Date**: [YYYY-MM-DD HH:MM:SS UTC]
**Commit/Tag**: [commit hash or tag]
**Tester**: [name]
**Environment**: [development/staging/production]
### Electron Platform
- **Status**: [PASS/FAIL/PARTIAL]
- **Issues**: [list any issues found]
- **Notes**: [additional observations]
### Android Platform
- **Status**: [PASS/FAIL/PARTIAL]
- **Device**: [device model/emulator version]
- **Issues**: [list any issues found]
- **Notes**: [additional observations]
### iOS Platform
- **Status**: [PASS/FAIL/PARTIAL]
- **Device**: [device model/simulator version]
- **Issues**: [list any issues found]
- **Notes**: [additional observations]
### Overall Assessment
- **Integration Status**: [READY/NOT_READY]
- **Blocking Issues**: [list any blocking issues]
- **Recommendations**: [next steps or improvements]
Troubleshooting
Common Issues
Electron Platform
- Notifications not appearing: Check system notification permissions
- Storage errors: Verify local storage is available and not blocked
- API not accessible: Check plugin registration and build output
Android Platform
- Notifications not firing: Check WorkManager constraints and battery optimization
- Crashes on startup: Verify native code compilation and permissions
- Background tasks not running: Check Doze/App Standby settings
iOS Platform
- Notifications not appearing: Check notification permissions and categories
- Background tasks not running: Verify BGTaskScheduler registration and iOS limits
- Crashes on startup: Check native code compilation and capabilities
Debug Steps
- Check Logs: Review console logs, native logs, and system logs
- Verify Permissions: Ensure all required permissions are granted
- Test Isolation: Test each platform independently
- Compare with Examples: Compare behavior with plugin examples
- Check Dependencies: Verify all dependencies are correctly installed
Success Criteria
Must Pass
- Plugin loads without errors on all platforms
- Basic notification scheduling works on all platforms
- Permission handling works correctly
- No crashes or memory leaks
- Data persistence works across app restarts
Should Pass
- Background execution works reliably
- Performance is acceptable
- Error handling is graceful
- Cross-platform consistency is maintained
Nice to Have
- Advanced features work correctly
- Edge cases are handled gracefully
- User experience is smooth
- Integration with TimeSafari features works
Next Review: After first integration test run
Stakeholders: TimeSafari Development Team, Plugin Development Team
Dependencies: TimeSafari PWA Integration, Plugin Build Completion