forked from jsnbuchanan/crowd-funder-for-time-pwa
- Update BUILDING.md with current build system information - Modernize various README files across the project - Update CHANGELOG.md with recent changes - Improve documentation consistency and formatting - Update platform-specific documentation (iOS, Electron, Docker) - Enhance test documentation and build guides
136 lines
3.6 KiB
Markdown
136 lines
3.6 KiB
Markdown
# 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)
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
npx playwright install
|
|
```
|
|
|
|
3. For mobile testing:
|
|
- XCode (for iOS)
|
|
- Android Studio or connected Android device
|
|
|
|
## Running Tests
|
|
|
|
### Full Test Suite
|
|
|
|
```bash
|
|
# Run all tests (web + mobile)
|
|
npm run test:all
|
|
|
|
# Run web-only tests
|
|
npm run test:web
|
|
```
|
|
|
|
### Individual Tests
|
|
|
|
```bash
|
|
# 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):
|
|
|
|
```bash
|
|
NODE_ENV=test-local npm run dev
|
|
```
|
|
|
|
2. Global Test Server:
|
|
|
|
```bash
|
|
VITE_DEFAULT_ENDORSER_API_SERVER=https://test-ledger.time.com npm run dev
|
|
```
|
|
|
|
3. Minimal Test Data:
|
|
|
|
```bash
|
|
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
|
|
|
|
## Related Documentation
|
|
|
|
- [TESTING.md](./TESTING.md) - Detailed testing guide
|
|
- [Playwright Documentation](https://playwright.dev/docs/intro)
|
|
- Endorser server documentation for test setup
|