mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
49 lines
1.5 KiB
Markdown
49 lines
1.5 KiB
Markdown
# Testing - Cursor Rules
|
|
|
|
## Testing Standards
|
|
|
|
- Write unit tests for all business logic
|
|
- Use integration tests for API endpoints
|
|
- Implement E2E tests for critical user flows
|
|
- Use proper mocking for external dependencies
|
|
- Maintain test coverage above 80%
|
|
- Use descriptive test names and organize in suites
|
|
|
|
## Jest Configuration (Preferred)
|
|
|
|
- Use Jest for unit and integration testing
|
|
- Configure with TypeScript support
|
|
- Use proper setup and teardown procedures
|
|
- Implement proper test isolation
|
|
- Use Jest's built-in mocking capabilities
|
|
|
|
## Mocha/Chai (Legacy - Gradually Phase Out)
|
|
|
|
- Existing tests may use Mocha and Chai
|
|
- When refactoring, prefer migrating to Jest
|
|
- Maintain existing test functionality during migration
|
|
- Use consistent assertion styles
|
|
|
|
## Testing Patterns
|
|
|
|
- Test business logic independently of framework code
|
|
- Use proper test doubles (mocks, stubs, spies)
|
|
- Test error conditions and edge cases
|
|
- Implement proper async testing patterns
|
|
- Use property-based testing where appropriate
|
|
|
|
## Test Organization
|
|
|
|
- Place tests adjacent to source code or in dedicated test directories
|
|
- Use consistent naming conventions (_.test.ts, _.spec.ts)
|
|
- Group related tests in describe blocks
|
|
- Use proper test lifecycle hooks (beforeEach, afterEach)
|
|
- Keep tests focused and independent
|
|
|
|
## End-to-End Testing
|
|
|
|
- Use Cypress for E2E testing
|
|
- Test critical user journeys
|
|
- Use proper page object patterns
|
|
- Implement proper test data management
|
|
- Handle async operations appropriately
|