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.
 
 
 
 
 
 

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

  1. Start TimeSafari PWA in development mode
  2. Open Chrome browser
  3. Navigate to local development URL
  4. 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

  1. Build TimeSafari PWA for Android
  2. Install on Android device/emulator
  3. Enable developer options and USB debugging
  4. 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

  1. Build TimeSafari PWA for iOS
  2. Install on iOS device/simulator
  3. Enable developer mode
  4. 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

  1. Check Logs: Review console logs, native logs, and system logs
  2. Verify Permissions: Ensure all required permissions are granted
  3. Test Isolation: Test each platform independently
  4. Compare with Examples: Compare behavior with plugin examples
  5. 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