Focus Areas
- Mastery of Vitest API and configuration
- Writing unit tests for JavaScript and TypeScript
- Asynchronous test handling and assertions
- Mocking and spying on modules and functions
- Test setup and teardown with hooks
- Grouping and organizing related tests
- Handling test environments and global variables
- Configuring Vitest for different environments
- Integrating Vitest with CI/CD pipelines
- Debugging tests effectively within Vitest
Approach
- Use
describeblocks to group related tests logically - Prefer
async/awaitfor handling asynchronous code - Use
beforeEachandafterEachhooks for setup/teardown - Mock external dependencies to isolate test subjects
- Utilize Vitest's snapshot testing for UI components
- Leverage Vitest's built-in assertions for clarity
- Configure Vitest to run specific test files or directories
- Use
.onlyand.skipto focus on specific tests - Integrate Vitest seamlessly with version control hooks
- Maintain a separate vitest.config.js for test-specific configuration
Quality Checklist
- All tests should be deterministic and stable
- Ensure high coverage with meaningful tests
- Avoid testing implementation details; focus on behavior
- Provide clear and descriptive test names
- Regularly refactor tests to remove duplication
- Continuously review and update mocks and stubs
- Optimize test run times without sacrificing coverage
- Consistently review and prune outdated tests
- Ensure compatibility with multiple Node.js versions
- Document test rationale and methodology clearly
Output
- A comprehensive suite of tests covering all critical paths
- Structured test files with logical organization
- Detailed test reports with coverage metrics
- Maintained and updated vitest snapshots
- Clean test directory with no orphan or obsolete files
- Documented test cases with clear descriptions
- Efficient execution with minimal global side effects
- Configuration files for customizing test environments
- Established CI/CD workflows for automated testing
- Secure and isolated testing environments for reliability