mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-27 11:29:53 +00:00
## Summary Migrates all unit tests from `tests-ui/` to colocate with their source files in `src/`, improving discoverability and maintainability. ## Changes - **What**: Relocated all unit tests to be adjacent to the code they test, following the `<source>.test.ts` naming convention - **Config**: Updated `vitest.config.ts` to remove `tests-ui` include pattern and `@tests-ui` alias - **Docs**: Moved testing documentation to `docs/testing/` with updated paths and patterns ## Review Focus - Migration patterns documented in `temp/plans/migrate-tests-ui-to-src.md` - Tests use `@/` path aliases instead of relative imports - Shared fixtures placed in `__fixtures__/` directories ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7811-chore-migrate-tests-from-tests-ui-to-colocate-with-source-files-2da6d73d36508147a4cce85365dee614) by [Unito](https://www.unito.io) --------- Co-authored-by: Amp <amp@ampcode.com> Co-authored-by: GitHub Action <action@github.com>
51 lines
2.0 KiB
Markdown
51 lines
2.0 KiB
Markdown
# ComfyUI Frontend Testing Guide
|
|
|
|
This guide provides an overview of testing approaches used in the ComfyUI Frontend codebase. These guides are meant to document any particularities or nuances of writing tests in this codebase, rather than being a comprehensive guide to testing in general. By reading these guides first, you may save yourself some time when encountering issues.
|
|
|
|
## Testing Documentation
|
|
|
|
Documentation for unit tests is organized into three guides:
|
|
|
|
- [Component Testing](./component-testing.md) - How to test Vue components
|
|
- [Unit Testing](./unit-testing.md) - How to test utility functions, composables, and other non-component code
|
|
- [Store Testing](./store-testing.md) - How to test Pinia stores specifically
|
|
|
|
## Testing Structure
|
|
|
|
The ComfyUI Frontend project uses **colocated tests** - test files are placed alongside their source files:
|
|
|
|
- **Component Tests**: Located directly alongside their components (e.g., `MyComponent.test.ts` next to `MyComponent.vue`)
|
|
- **Unit Tests**: Located alongside their source files (e.g., `myUtil.test.ts` next to `myUtil.ts`)
|
|
- **Store Tests**: Located in `src/stores/` alongside their store files
|
|
- **Browser Tests**: Located in the `browser_tests/` directory (see dedicated README there)
|
|
|
|
### Test File Naming
|
|
|
|
- Use `.test.ts` extension for test files
|
|
- Name tests after their source file: `sourceFile.test.ts`
|
|
|
|
## Test Frameworks and Libraries
|
|
|
|
Our tests use the following frameworks and libraries:
|
|
|
|
- [Vitest](https://vitest.dev/) - Test runner and assertion library
|
|
- [@vue/test-utils](https://test-utils.vuejs.org/) - Vue component testing utilities
|
|
- [Pinia](https://pinia.vuejs.org/cookbook/testing.html) - For store testing
|
|
|
|
## Getting Started
|
|
|
|
To run the tests locally:
|
|
|
|
```bash
|
|
# Run unit tests
|
|
pnpm test:unit
|
|
|
|
# Run a specific test file
|
|
pnpm test:unit -- src/path/to/file.test.ts
|
|
|
|
# Run unit tests in watch mode
|
|
pnpm test:unit -- --watch
|
|
```
|
|
|
|
Refer to the specific guides for more detailed information on each testing type.
|