166 lines
4.5 KiB
Markdown
166 lines
4.5 KiB
Markdown
# Testing Summary
|
|
|
|
## Overview
|
|
|
|
This document summarizes the testing status for EuchreCamp, including user stories, acceptance tests, and current test coverage.
|
|
|
|
## Test Organization
|
|
|
|
### Unit Tests (Vitest)
|
|
Location: `src/__tests__/` (excluding `e2e/` directory)
|
|
|
|
- `Navigation.test.tsx` - Navigation component tests
|
|
- `EditTournamentForm.test.tsx` - Tournament form component tests
|
|
- `auth-simple.test.ts` - Authentication helper tests
|
|
|
|
### Acceptance Tests (Playwright)
|
|
Location: `src/__tests__/e2e/`
|
|
|
|
- `account-acceptance.test.ts` - Account lifecycle (UI-based)
|
|
- `account-acceptance-api.test.ts` - Account lifecycle (API-based)
|
|
- `epic1-auth-registration.test.ts` - User registration
|
|
- `epic1-auth-logout.test.ts` - User logout
|
|
- `epic1-auth-password-reset.test.ts` - Password reset (placeholder)
|
|
- `epic3-rankings.test.ts` - Rankings page
|
|
- `epic4-tournament-creation.test.ts` - Tournament creation
|
|
|
|
## Test Results
|
|
|
|
### Unit Tests (Vitest)
|
|
```
|
|
Test Files 3 passed (3)
|
|
Tests 14 passed (14)
|
|
```
|
|
|
|
### Acceptance Tests (Playwright)
|
|
```
|
|
8 passed, 12 failed (out of 20 tests)
|
|
```
|
|
|
|
**Passing Tests:**
|
|
- Account API registration (via API)
|
|
- Account API login (via API)
|
|
- Account API deletion (via API)
|
|
- Navigation logout button visibility
|
|
- Tournament form displays
|
|
- Tournament form has required fields
|
|
- Tournament form submission
|
|
|
|
**Failing Tests:**
|
|
- Account registration (UI) - Better Auth client issue
|
|
- Account login (UI) - Better Auth client issue
|
|
- Logout session clearing - Better Auth cookie issue
|
|
- Registration duplicate email validation
|
|
- Registration password validation
|
|
- User profile linking
|
|
|
|
## User Stories to Tests Mapping
|
|
|
|
See `USER_STORIES_TO_TESTS.md` for detailed mapping.
|
|
|
|
### Epic 1: Authentication & User Management
|
|
| User Story | Status |
|
|
|------------|--------|
|
|
| Registration | ⚠️ Partial (API works, UI needs fix) |
|
|
| Login | ⚠️ Partial (API works, UI needs fix) |
|
|
| Logout | ⚠️ Partial (UI shows logout, session clearing needs fix) |
|
|
| Password Reset | ❌ Not implemented |
|
|
|
|
### Epic 2: Player Profile & Analytics
|
|
| User Story | Status |
|
|
|------------|--------|
|
|
| View profile | ❌ No tests |
|
|
| Partnership performance | ❌ No tests |
|
|
| Recent games | ❌ No tests |
|
|
| Tournament history | ❌ No tests |
|
|
|
|
### Epic 3: Rankings & Public Data
|
|
| User Story | Status |
|
|
|------------|--------|
|
|
| Rankings page | ⚠️ Basic test exists |
|
|
| Public profiles | ❌ No tests |
|
|
|
|
### Epic 4: Tournament Management
|
|
| User Story | Status |
|
|
|------------|--------|
|
|
| Create tournament | ⚠️ Partial (form tests exist) |
|
|
| Manage participants | ❌ No tests |
|
|
| Create teams | ❌ No tests |
|
|
| Generate schedule | ❌ No tests |
|
|
| Record match results | ❌ No tests |
|
|
| CSV upload | ❌ No tests |
|
|
| Tournament analytics | ❌ No tests |
|
|
|
|
### Epic 5: Match Recording & CSV Import
|
|
| User Story | Status |
|
|
|------------|--------|
|
|
| Record match result | ❌ No tests |
|
|
| CSV import | ❌ No tests |
|
|
| Edit match results | ❌ No tests |
|
|
|
|
### Epic 6: Club Administration
|
|
| User Story | Status |
|
|
|------------|--------|
|
|
| Manage players | ❌ No tests |
|
|
| Manage tournaments | ❌ No tests |
|
|
| Configure settings | ❌ No tests |
|
|
| View analytics | ❌ No tests |
|
|
|
|
### Epic 7: Mobile Responsiveness
|
|
| User Story | Status |
|
|
|------------|--------|
|
|
| Mobile navigation | ❌ No tests |
|
|
| Mobile form entry | ❌ No tests |
|
|
|
|
### Epic 8: Data Management & Export
|
|
| User Story | Status |
|
|
|------------|--------|
|
|
| Export data | ❌ No tests |
|
|
| Import data | ❌ No tests |
|
|
|
|
## Running Tests
|
|
|
|
### Unit Tests
|
|
```bash
|
|
npm run test:run
|
|
```
|
|
|
|
### Acceptance Tests
|
|
```bash
|
|
# Ensure Next.js dev server is running first
|
|
npm run dev
|
|
|
|
# In another terminal
|
|
npm run test:acceptance
|
|
```
|
|
|
|
### Headed Acceptance Tests (for debugging)
|
|
```bash
|
|
npm run test:acceptance:headed
|
|
```
|
|
|
|
## Known Issues
|
|
|
|
### Better Auth Configuration
|
|
Some acceptance tests fail because Better Auth client methods aren't working correctly in the test environment. The API endpoints work, but the client-side auth methods may need additional configuration.
|
|
|
|
**Workaround:** Use direct API calls in tests instead of client methods.
|
|
|
|
### Database Setup
|
|
The database needs to be migrated before running tests:
|
|
```bash
|
|
npx prisma migrate dev --name init
|
|
```
|
|
|
|
### Playwright Test Isolation
|
|
Playwright tests should be run in the `e2e/` directory to avoid conflicts with Vitest tests.
|
|
|
|
## Next Steps
|
|
|
|
1. Fix Better Auth client configuration for UI-based tests
|
|
2. Add tests for Epic 2 (Player Profile)
|
|
3. Add tests for Epic 5 (Match Recording)
|
|
4. Add tests for Epic 6 (Club Administration)
|
|
5. Add mobile responsiveness tests
|
|
6. Add data import/export tests
|