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.
 
 
 

4.5 KiB

Testing Guide

Automated Tests

Setup

  1. 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.

  1. Install Playwright browsers:
npx playwright install

Running Tests

Full Test Suite

Run all local tests:

npm run test-all

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

  1. Create multiple identifiers:

    • Go to "Your Identity" screen
    • Click "Advanced"
    • Click "Switch Identity / No Identity"
    • Click "Add Another Identity..."
  2. Create keys with alternate tools:

Web Push Testing

For web-push tests:

  1. Change push server URL in Advanced settings on the account page
  2. Install Time Safari & push server on the same domain

Manual Walk-through Test Checklist

  1. Initial Setup

    • Backup seed & data
    • Get CSV dump from Endorser Mobile
    • Check DB migration compatibility
    • Verify version update
  2. Environment Setup

    • Clear browser data
    • Add identity
    • Import Time Safari contacts and CSV contacts
    • Verify test API usage
  3. 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
  4. PWA Installation

    • Install PWA
    • Test User 0 functions
    • Verify image handling
    • Test contact management
    • Check feed display
    • Verify name visibility
  5. 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:

  1. 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
  2. Notification Permissions:

    • Chrome: Go to chrome://settings/content/notifications
    • Firefox: Go to about:preferences → search "notifications"
  3. Service Worker:

    • Chrome: Go to chrome://serviceworker-internals
    • Firefox: Go to about:serviceworkers
  4. Cache Storage:

    • Chrome: Dev tools → Application
    • Firefox: Dev tools → Storage

(Additional reset steps may be documented in HelpNotificationsView.vue)

Troubleshooting

  1. 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
  2. Identity Errors:

    • "No keys for ID" errors may occur when current account was erased
    • Account switching can cause issues with erased accounts
  3. 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