Initial commit: Brachnha Insight project setup
- Next.js 14+ with App Router and TypeScript - Tailwind CSS and ShadCN UI styling - Zustand state management - Dexie.js for IndexedDB (local-first data) - Auth.js v5 for authentication - BMAD framework integration Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
53
tests/README.md
Normal file
53
tests/README.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Test Suite Documentation
|
||||
|
||||
This project uses **Playwright** for End-to-End (E2E) testing.
|
||||
|
||||
## Setup
|
||||
|
||||
1. Install dependencies:
|
||||
\`\`\`bash
|
||||
npm install
|
||||
\`\`\`
|
||||
|
||||
2. Setup environment:
|
||||
\`\`\`bash
|
||||
cp .env.example .env
|
||||
# Update .env with local configuration if needed
|
||||
\`\`\`
|
||||
|
||||
3. Install Playwright browsers:
|
||||
\`\`\`bash
|
||||
npx playwright install
|
||||
\`\`\`
|
||||
|
||||
## Running Tests
|
||||
|
||||
- **Run all E2E tests:**
|
||||
\`\`\`bash
|
||||
npm run test:e2e
|
||||
\`\`\`
|
||||
|
||||
- **Run in UI mode (interactive):**
|
||||
\`\`\`bash
|
||||
npx playwright test --ui
|
||||
\`\`\`
|
||||
|
||||
- **Run specific test file:**
|
||||
\`\`\`bash
|
||||
npx playwright test tests/e2e/example.spec.ts
|
||||
\`\`\`
|
||||
|
||||
## Architecture
|
||||
|
||||
We follow a structured pattern for maintainable tests:
|
||||
|
||||
- **`tests/e2e/`**: Contains the actual test files.
|
||||
- **`tests/support/fixtures/`**: Playwright fixtures. Use `test` from here, not `@playwright/test`.
|
||||
- **`tests/support/fixtures/factories/`**: Data factories for generating test data.
|
||||
|
||||
### Best Practices
|
||||
|
||||
1. **Use `data-testid`**: Prefer `page.getByTestId('submit-btn')` over CSS/XPath selectors.
|
||||
2. **Atomic Tests**: Each test should be independent and run in isolation.
|
||||
3. **Use Factories**: Don't hardcode data. Use `userFactory.createUser()` to get fresh data.
|
||||
4. **Network First**: When testing external APIs, use network interception to avoid flakiness.
|
||||
Reference in New Issue
Block a user