# Testing Guide

Start with [README.md](./README.md). This file has more details.

## 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:

```bash
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](https://github.com/trentlarson/endorser-ch/blob/master/test/util.js).)

## 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:
   - See [openssl_signing_console.rst](openssl_signing_console.rst) for JWT creation with local keypairs

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

### Chromium

```bash
 rm -rf profiles/dev2 && \ 
 mkdir -p profiles/dev2 && \
 chromium --user-data-dir=profiles/dev2 --start-maximized --auto-open-devtools-for-tabs http://localhost:8080
```

### Firefox

Here is the equivalent command for **Firefox** using a custom profile and opening a local page:

```bash
rm -rf profiles/dev2 && \
mkdir -p profiles/dev2 && \
firefox --no-remote --profile $(realpath profiles/dev2) --devtools --new-window http://localhost:8080
```

## Troubleshooting

1. Identity Errors:
   - "No keys for ID" errors may occur when current account was erased
   - Account switching can cause issues with erased accounts

2. If you find yourself wanting to see the testing process try something like this:

```
npx playwright test -c playwright.config-local.ts test-playwright/60-new-activity.spec.ts --grep "New offers for another user" --headed
```

This command allows you to:

- **Run a specific test file**: `test-playwright/60-new-activity.spec.ts`
- **Filter to a specific test**: `--grep "New offers for another user"` runs only tests with that name
- **See the browser**: `--headed` opens the browser window so you can watch the test execute
- **Use local config**: `-c playwright.config-local.ts` uses the local configuration file

This is useful when you want to observe the testing process visually rather than running tests in headless mode. It's particularly helpful for debugging test failures or understanding how the application behaves during automated testing.
