196 lines
4.2 KiB
Markdown
196 lines
4.2 KiB
Markdown
|
|
# 🚀 Quick Test Commands Reference
|
||
|
|
|
||
|
|
## ⚡ Most Used Commands
|
||
|
|
|
||
|
|
### 1. Run Tests in Chrome (Watch Mode)
|
||
|
|
```bash
|
||
|
|
npm run test:e2e:headed -- --project=chromium tests/onboarding/
|
||
|
|
```
|
||
|
|
**Use this for:** Watching tests run in a visible Chrome window
|
||
|
|
|
||
|
|
### 2. Run Tests in UI Mode (Best for Development)
|
||
|
|
```bash
|
||
|
|
npm run test:e2e:ui
|
||
|
|
```
|
||
|
|
**Use this for:** Interactive test development and debugging
|
||
|
|
|
||
|
|
### 3. Debug Specific Test
|
||
|
|
```bash
|
||
|
|
npm run test:e2e:debug -- tests/onboarding/complete-registration-flow.spec.ts
|
||
|
|
```
|
||
|
|
**Use this for:** Step-by-step debugging with Playwright Inspector
|
||
|
|
|
||
|
|
### 4. Record New Tests (Codegen)
|
||
|
|
```bash
|
||
|
|
# Start dev server first
|
||
|
|
npm run dev
|
||
|
|
|
||
|
|
# In another terminal
|
||
|
|
npm run test:e2e:codegen
|
||
|
|
```
|
||
|
|
**Use this for:** Recording your actions to generate test code
|
||
|
|
|
||
|
|
### 5. Run Complete Flow Test Only
|
||
|
|
```bash
|
||
|
|
npx playwright test tests/onboarding/complete-registration-flow.spec.ts --headed --project=chromium
|
||
|
|
```
|
||
|
|
**Use this for:** Testing the full registration + onboarding flow
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📋 All Available Commands
|
||
|
|
|
||
|
|
| Command | Description |
|
||
|
|
|---------|-------------|
|
||
|
|
| `npm run test:e2e` | Run all E2E tests (headless) |
|
||
|
|
| `npm run test:e2e:ui` | Open Playwright UI mode |
|
||
|
|
| `npm run test:e2e:headed` | Run tests with visible browser |
|
||
|
|
| `npm run test:e2e:debug` | Debug tests with Playwright Inspector |
|
||
|
|
| `npm run test:e2e:report` | View last test report |
|
||
|
|
| `npm run test:e2e:codegen` | Record actions to generate tests |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 Test Specific Scenarios
|
||
|
|
|
||
|
|
### Test Complete Registration Flow
|
||
|
|
```bash
|
||
|
|
npx playwright test complete-registration-flow --headed
|
||
|
|
```
|
||
|
|
|
||
|
|
### Test Wizard Navigation Only
|
||
|
|
```bash
|
||
|
|
npx playwright test wizard-navigation --headed
|
||
|
|
```
|
||
|
|
|
||
|
|
### Test File Upload Only
|
||
|
|
```bash
|
||
|
|
npx playwright test file-upload --headed
|
||
|
|
```
|
||
|
|
|
||
|
|
### Test with Specific Browser
|
||
|
|
```bash
|
||
|
|
# Chrome
|
||
|
|
npx playwright test --project=chromium --headed
|
||
|
|
|
||
|
|
# Firefox
|
||
|
|
npx playwright test --project=firefox --headed
|
||
|
|
|
||
|
|
# Safari
|
||
|
|
npx playwright test --project=webkit --headed
|
||
|
|
|
||
|
|
# Mobile Chrome
|
||
|
|
npx playwright test --project="Mobile Chrome" --headed
|
||
|
|
```
|
||
|
|
|
||
|
|
### Run Single Test by Name
|
||
|
|
```bash
|
||
|
|
npx playwright test -g "should complete full registration" --headed
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🐛 Debugging Commands
|
||
|
|
|
||
|
|
### View Last Test Report
|
||
|
|
```bash
|
||
|
|
npx playwright show-report
|
||
|
|
```
|
||
|
|
|
||
|
|
### Run with Trace
|
||
|
|
```bash
|
||
|
|
npx playwright test --trace on
|
||
|
|
```
|
||
|
|
|
||
|
|
### View Trace File
|
||
|
|
```bash
|
||
|
|
npx playwright show-trace trace.zip
|
||
|
|
```
|
||
|
|
|
||
|
|
### Run in Slow Motion
|
||
|
|
```bash
|
||
|
|
npx playwright test --headed --slow-mo=1000
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⚙️ Before Running Tests
|
||
|
|
|
||
|
|
### 1. Make Sure Dev Server is Running
|
||
|
|
```bash
|
||
|
|
npm run dev
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Or Let Playwright Auto-Start It
|
||
|
|
The `playwright.config.ts` is already configured to auto-start the dev server.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔧 Configuration
|
||
|
|
|
||
|
|
### Change Base URL
|
||
|
|
```bash
|
||
|
|
PLAYWRIGHT_BASE_URL=http://localhost:5173 npm run test:e2e:headed
|
||
|
|
```
|
||
|
|
|
||
|
|
### Update Test User Credentials
|
||
|
|
Edit `frontend/tests/auth.setup.ts` or set:
|
||
|
|
```bash
|
||
|
|
export TEST_USER_EMAIL=your.email@example.com
|
||
|
|
export TEST_USER_PASSWORD=YourPassword123
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 Example: Full Testing Workflow
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 1. Start dev server
|
||
|
|
npm run dev
|
||
|
|
|
||
|
|
# 2. In another terminal, run tests in UI mode
|
||
|
|
npm run test:e2e:ui
|
||
|
|
|
||
|
|
# 3. Select "complete-registration-flow.spec.ts"
|
||
|
|
|
||
|
|
# 4. Click "Watch" and "Show browser"
|
||
|
|
|
||
|
|
# 5. See the magic happen! ✨
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎬 Pro Tips
|
||
|
|
|
||
|
|
1. **Always use `--headed` when developing tests** - you need to see what's happening
|
||
|
|
2. **Use UI mode for test development** - it's the best experience
|
||
|
|
3. **Use `test.only()` to run a single test** - faster iteration
|
||
|
|
4. **Use `page.pause()` to pause execution** - inspect state mid-test
|
||
|
|
5. **Check test-results/ folder for screenshots** - helpful for debugging
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📁 Test Files Location
|
||
|
|
|
||
|
|
```
|
||
|
|
frontend/tests/onboarding/
|
||
|
|
├── complete-registration-flow.spec.ts ← Full flow (NEW!)
|
||
|
|
├── wizard-navigation.spec.ts ← Wizard steps
|
||
|
|
└── file-upload.spec.ts ← File uploads
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🆘 Quick Help
|
||
|
|
|
||
|
|
**Command not working?**
|
||
|
|
1. Make sure you're in the `frontend/` directory
|
||
|
|
2. Run `npm install` to ensure dependencies are installed
|
||
|
|
3. Run `npx playwright install chromium` to install browsers
|
||
|
|
4. Check that dev server is running on port 5173
|
||
|
|
|
||
|
|
**Need more help?**
|
||
|
|
- Read the full guide: `TESTING_ONBOARDING_GUIDE.md`
|
||
|
|
- Check Playwright docs: https://playwright.dev
|
||
|
|
- View test report: `npx playwright show-report`
|