4.7 KiB
Testing Guide
Automated Tests
Setup
- Clone and set up the Endorser server:
git clone https://github.com/time-endorser/endorser-ch.git
cd endorser-ch
npm install
test/test.sh
cp .env.local .env
NODE_ENV=test-local npm run dev
If that fails, follow the instructions in the endorser-ch directory's README.md.
- Install Playwright browsers:
npx playwright install
Running Tests
Full Test Suite
To run all tests, make sure XCode is started and either Android Studio is started or an Android device is connected.
npm run test:all
Run only web tests:
npm run test:web
Note: Tests may occasionally fail and succeed on rerun (especially if a different test fails).
Single Test
To run a single test with tracing enabled:
npx playwright test -c playwright.config-local.ts --trace on test-playwright/40-add-contact.spec.ts
Global Test Server
It's possible to use the global test Endorser (ledger) server, though not all tests currently succeed:
VITE_DEFAULT_ENDORSER_API_SERVER=https://test-ledger.time.com npm run dev
Minimal Test Data
To run with minimal test data:
rm ../endorser-ch-test-local.sqlite3
NODE_ENV=test-local npm run flyway migrate
NODE_ENV=test-local npm run test test/controller0
NODE_ENV=test-local npm run dev
Test User Setup
Register New User on Test Server
On the test server, User #0 has rights to register others. Import User #0 with this seed phrase:
rigid shrug mobile smart veteran half all pond toilet brave review universe ship congress found yard skate elite apology jar uniform subway slender luggage
This corresponds to: did:ethr:0x0000694B58C2cC69658993A90D3840C560f2F51F
(Other test users can be found here.)
Manual Testing Steps
Identity Management
-
Create multiple identifiers:
- Go to "Your Identity" screen
- Click "Advanced"
- Click "Switch Identity / No Identity"
- Click "Add Another Identity..."
-
Create keys with alternate tools:
- See openssl_signing_console.rst for JWT creation with local keypairs
Web Push Testing
For web-push tests:
- Change push server URL in Advanced settings on the account page
- Install Time Safari & push server on the same domain
Manual Walk-through Test Checklist
-
Initial Setup
- Backup seed & data
- Get CSV dump from Endorser Mobile
- Check DB migration compatibility
- Verify version update
-
Environment Setup
- Clear browser data
- Add identity
- Import Time Safari contacts and CSV contacts
- Verify test API usage
-
Fresh Install Testing
- Clear browser data
- Check account page before home page
- Verify ID generation
- Test feed without names
- Verify contact URL copying
- Check messaging on all pages
- Verify project discovery
- Test contact addition without ID
-
PWA Installation
- Install PWA
- Test User 0 functions
- Verify image handling
- Test contact management
- Check feed display
- Verify name visibility
-
Feature Testing
- Test identifier switching
- Check registration limits
- Verify gift recording
- Test offer & delivery
- Check contact registration
- Test notifications
- Verify export/import
- Test location features
- Check third-user connections
- Test mobile image sharing
Data Reset Instructions
To clear/reset data:
-
Browser Cache:
- Chrome: Go to
chrome://settings/cookies
→ "all site data and permissions" - Firefox: Go to
about:preferences
→ search "cache" → "Manage Data" - Manually remove IndexedDB data if needed
- Chrome: Go to
-
Notification Permissions:
- Chrome: Go to
chrome://settings/content/notifications
- Firefox: Go to
about:preferences
→ search "notifications"
- Chrome: Go to
-
Service Worker:
- Chrome: Go to
chrome://serviceworker-internals
- Firefox: Go to
about:serviceworkers
- Chrome: Go to
-
Cache Storage:
- Chrome: Dev tools → Application
- Firefox: Dev tools → Storage
(Additional reset steps may be documented in HelpNotificationsView.vue)
Troubleshooting
-
Web Push Issues:
GET http://localhost:8080/web-push/vapid
errors indicate py-push-server is not running- Local notifications require special routing from browser's push service
-
Identity Errors:
- "No keys for ID" errors may occur when current account was erased
- Account switching can cause issues with erased accounts
-
Encryption Issues:
- "DEXIE ENCRYPT ADDON: Could not decrypt message!" indicates wrong encryption key
- May occur after clearing storage
- Usually requires storage erasure and identifier reload