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.
 
 
 
 
 
 
Trent Larson 925ce830b4 remove duplicate instructions 2 days ago
..
test-playwright/test-results docs: enhance component documentation with usage and reference tracking 2 months ago
test-results docs: enhance component documentation with usage and reference tracking 2 months ago
.eslintrc.js add instructions to run tests, and fix linting (for WebStorm) 10 months ago
00-noid-tests.spec.ts feat(accessibility): enhance AccountViewView and document test suite 3 days ago
05-invite.spec.ts docs(tests): Add comprehensive test suite documentation 3 months ago
10-check-usage-limits.spec.ts docs(tests): Add comprehensive test suite documentation 3 months ago
20-create-project.spec.ts docs(tests): Add comprehensive test suite documentation 3 months ago
25-create-project-x10.spec.ts fix where function is not found 3 months ago
30-record-gift.spec.ts fix: resolve strict mode violation in gift recording test 2 months ago
33-record-gift-x10.spec.ts refactor: improve feed loading and infinite scroll reliability 2 months ago
35-record-gift-from-image-share.spec.ts tweak tests for clarity 3 months ago
37-record-gift-on-project.spec.ts add tests for gives to & from projects 6 months ago
40-add-contact.spec.ts tweak tests for clarity 3 months ago
50-record-offer.spec.ts test: increase timeout for record offer test to 60s 4 weeks ago
60-new-activity.spec.ts bump version to 0.3.46 and fix vulnerabilities 4 months ago
LICENSE finish separation of daily reminder message, bump version to 0.3.34 6 months ago
README.md remove duplicate instructions 2 days ago
TESTING.md remove duplicate instructions 2 days ago
exported-data.json allow bulk-imported contacts to have visibility set 8 months ago
testUtils.ts tweak tests for clarity 3 months ago

README.md

Playwright Test Suite

This directory contains the automated end-to-end test suite for Time Safari using Playwright. The tests verify critical functionality across web and mobile platforms.

Test Structure

Tests are organized by feature area and numbered for execution order:

  • 00-noid-tests.spec.ts - Tests for unregistered users
  • 05-invite.spec.ts - Contact invitation functionality
  • 10-check-usage-limits.spec.ts - Usage limit verification
  • 20-create-project.spec.ts - Project creation
  • 25-create-project-x10.spec.ts - Bulk project creation
  • 30-record-gift.spec.ts - Gift recording
  • 33-record-gift-x10.spec.ts - Bulk gift recording
  • 35-record-gift-from-image-share.spec.ts - Gift recording from shared images
  • 37-record-gift-on-project.spec.ts - Project-specific gift recording
  • 40-add-contact.spec.ts - Contact management
  • 50-record-offer.spec.ts - Offer recording
  • 60-new-activity.spec.ts - Activity feed updates

Key Files

  • testUtils.ts - Shared test utilities and helper functions
  • TESTING.md - Detailed testing guide and manual test procedures
  • playwright.config-local.ts - Playwright configuration for local testing
  • exported-data.json - Test data for import/export testing

Prerequisites

  1. Endorser server running locally (see TESTING.md for setup)
    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
    
  2. Playwright browsers installed:
    npx playwright install
    
  3. For mobile testing:
    • XCode (for iOS)
    • Android Studio or connected Android device

Running Tests

Full Test Suite

# Run all tests (web + mobile)
npm run test:all

# Run web-only tests
npm run test:web

Individual Tests

# Run a specific test with tracing
npx playwright test -c playwright.config-local.ts --trace on test-playwright/40-add-contact.spec.ts

Test Environment Options

  1. Local Endorser Server (default):

    NODE_ENV=test-local npm run dev
    
  2. Global Test Server:

    VITE_DEFAULT_ENDORSER_API_SERVER=https://test-ledger.time.com npm run dev
    
  3. 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 Data

The test suite uses predefined test users, with User #0 having registration privileges. To use it: Profile -> Advanced -> Switch Identifier -> Add Another Identity -> You Have A Seed -> Advanced -> Use mnemonic for Test User #0 -> Import

More details available in TESTING.md

Troubleshooting

Common issues and solutions:

  1. Test Failures

    • Some tests may fail intermittently - try rerunning
    • Check Endorser server logs for backend issues
    • Verify test environment setup
  2. Mobile Testing

    • Ensure XCode/Android Studio is running
    • Check device connectivity
    • Verify browser installation
  3. Data Issues

    • Clear browser data if tests fail due to stale state
    • Reset IndexedDB if needed
    • Check service worker status

For more detailed troubleshooting, see TESTING.md.

Contributing

When adding new tests:

  1. Follow the existing naming convention
  2. Use testUtils.ts for common operations
  3. Add appropriate comments and documentation
  4. Update this README if adding new test categories
  5. Consider both web and mobile platforms