mirror of
https://github.com/vitest-dev/vitest.git
synced 2025-12-08 18:26:03 +00:00
chore(ai): add AGENTS.md (#8555)
This commit is contained in:
parent
304bc20f0f
commit
370515677f
11
.github/copilot-instructions.md
vendored
Normal file
11
.github/copilot-instructions.md
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
# copilot-instructions.md
|
||||
|
||||
This file provides guidance to Copilot Agent when working with code in this repository.
|
||||
|
||||
## Codebase Overview
|
||||
|
||||
Vitest is a next-generation testing framework powered by Vite. This is a monorepo using pnpm workspaces.
|
||||
|
||||
## Essential references
|
||||
|
||||
- Agent-specific guide: See [AGENTS.md](../AGENTS.md)
|
||||
144
AGENTS.md
Normal file
144
AGENTS.md
Normal file
@ -0,0 +1,144 @@
|
||||
# Vitest AI Agent Guide
|
||||
|
||||
This document provides comprehensive information for AI agents working on the Vitest codebase.
|
||||
|
||||
## Project Overview
|
||||
|
||||
Vitest is a next-generation testing framework powered by Vite. This is a monorepo using pnpm workspaces with the following key characteristics:
|
||||
|
||||
- **Language**: TypeScript/JavaScript (ESM-first)
|
||||
- **Package Manager**: pnpm (required)
|
||||
- **Node Version**: ^18.0.0 || >=20.0.0
|
||||
- **Build System**: Vite + Rollup
|
||||
- **Monorepo Structure**: 15+ packages in `packages/` directory
|
||||
|
||||
## Setup and Development
|
||||
|
||||
### Initial Setup
|
||||
1. Run `pnpm install` to install dependencies
|
||||
2. Run `pnpm build` to build all packages
|
||||
3. Install Playwright browsers when working with browser features: `npx playwright install --with-deps`
|
||||
|
||||
### Key Scripts
|
||||
- `pnpm build` - Build all packages
|
||||
- `pnpm dev` - Watch mode for development
|
||||
- `pnpm lint` - Run ESLint
|
||||
- `pnpm lint:fix` - Fix linting issues automatically
|
||||
- `pnpm typecheck` - Run TypeScript type checking
|
||||
|
||||
## Testing
|
||||
|
||||
### Running Tests
|
||||
- **All tests**: `CI=true pnpm test:ci`
|
||||
- **Examples**: `CI=true pnpm test:examples`
|
||||
- **Specific test suite**: `CI=true cd test/<test-folder> && pnpm test <test-file>`
|
||||
- **Core directory test**: `CI=true pnpm test <test-file>` (for `test/core`)
|
||||
- **Browser tests**: `CI=true pnpm test:browser:playwright` or `CI=true pnpm test:browser:webdriverio`
|
||||
|
||||
### Testing Utilities
|
||||
- **`runInlineTests`** from `test/test-utils/index.ts` - You must use this for complex file system setups (>1 file)
|
||||
- **`runVitest`** from `test/test-utils/index.ts` - You can use this to run Vitest programmatically
|
||||
- **No mocking policy** - You must never mock anything in tests
|
||||
|
||||
## Project Structure
|
||||
|
||||
### Core Packages (`packages/`)
|
||||
- `vitest` - Main testing framework
|
||||
- `vite-node` - Vite SSR runtime
|
||||
- `browser` - Browser testing support
|
||||
- `ui` - Web UI for test results
|
||||
- `runner` - Test runner core
|
||||
- `expect` - Assertion library
|
||||
- `spy` - Mocking and spying utilities
|
||||
- `snapshot` - Snapshot testing
|
||||
- `coverage-v8` / `coverage-istanbul` - Code coverage
|
||||
- `utils` - Shared utilities
|
||||
- `mocker` - Module mocking
|
||||
|
||||
### Test Organization (`test/`)
|
||||
- `test/core` - Core functionality tests
|
||||
- `test/browser` - Browser-specific tests
|
||||
- Various test suites organized by feature
|
||||
|
||||
### Important Directories
|
||||
- `docs/` - Documentation (Vite-powered)
|
||||
- `examples/` - Example projects and integrations
|
||||
- `scripts/` - Build and development scripts
|
||||
- `.github/` - GitHub Actions workflows
|
||||
- `patches/` - Package patches via pnpm
|
||||
|
||||
## Code Style and Conventions
|
||||
|
||||
### Formatting and Linting
|
||||
- **Always run** `pnpm lint:fix` after making changes
|
||||
- Fix non-auto-fixable errors manually
|
||||
|
||||
### TypeScript
|
||||
- Strict TypeScript configuration
|
||||
- Use `pnpm typecheck` to verify types
|
||||
- Configuration files: `tsconfig.base.json`, `tsconfig.build.json`, `tsconfig.check.json`
|
||||
|
||||
### Code Quality
|
||||
- ESM-first approach
|
||||
- Follow existing patterns in the codebase
|
||||
- Use utilities from `@vitest/utils/*` when available. Never import from `@vitest/utils` main entry point directly.
|
||||
|
||||
## Common Workflows
|
||||
|
||||
### Adding New Features
|
||||
1. Identify the appropriate package in `packages/`
|
||||
2. Follow existing code patterns
|
||||
3. Add tests using testing utilities
|
||||
4. Run `pnpm build && pnpm typecheck && pnpm lint:fix`
|
||||
5. Add tests with relevant test suites
|
||||
|
||||
### Debugging
|
||||
- Use VS Code: `⇧⌘B` (Shift+Cmd+B) or `Ctrl+Shift+B` for dev tasks
|
||||
- Check `scripts/` directory for specialized development tools
|
||||
|
||||
### Documentation
|
||||
- Main docs in `docs/` directory
|
||||
- Built with `pnpm docs:build`
|
||||
- Local dev server: `pnpm docs`
|
||||
|
||||
## Dependencies and Tools
|
||||
|
||||
### Key Dependencies
|
||||
- **Vite** - Build tool and dev server
|
||||
- **Rollup** - Bundler
|
||||
- **ESLint** - Linting
|
||||
- **TypeScript** - Type checking
|
||||
- **Playwright** - Browser testing
|
||||
- **Chai/Expect** - Assertions
|
||||
- **Tinypool** - Worker threading
|
||||
- **Tinybench** - Benchmarking
|
||||
|
||||
### Development Tools
|
||||
- **tsx** - TypeScript execution
|
||||
- **ni/nr** - Package manager abstraction
|
||||
- **bumpp** - Version bumping
|
||||
- **changelogithub** - Changelog generation
|
||||
|
||||
## Browser Testing
|
||||
- Two modes: Playwright and WebDriverIO
|
||||
- Separate test commands for each
|
||||
- Component testing supported (Vue, React, Svelte, Lit, Marko)
|
||||
|
||||
## Performance Considerations
|
||||
- This is a performance-critical testing framework
|
||||
- Pay attention to import costs and bundle size
|
||||
- Use lazy loading where appropriate
|
||||
- Consider worker thread implications
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
- Ensure pnpm is used (not npm/yarn)
|
||||
- Build before running tests
|
||||
- Check Node.js version compatibility
|
||||
- Playwright browsers must be installed for browser tests
|
||||
|
||||
### Getting Help
|
||||
- Check existing issues and documentation
|
||||
- Review CONTRIBUTING.md for detailed guidelines
|
||||
- Follow patterns in existing code
|
||||
11
CLAUDE.md
Normal file
11
CLAUDE.md
Normal file
@ -0,0 +1,11 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Codebase Overview
|
||||
|
||||
Vitest is a next-generation testing framework powered by Vite. This is a monorepo using pnpm workspaces.
|
||||
|
||||
## Essential references
|
||||
|
||||
- Agent-specific guide: See [AGENTS.md](AGENTS.md)
|
||||
Loading…
x
Reference in New Issue
Block a user