mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-07-12 10:17:08 +00:00
## Summary
Adds CodeRabbit `path_instructions` so changed test files are reviewed
with the repo's existing test guidance docs.
## Changes
- **What**: Routes Vitest `**/*.test.ts` files to
`.agents/checks/test-quality.md`, `docs/testing/README.md`, and
`docs/guidance/vitest.md`.
- **What**: Routes Playwright
`{browser_tests,apps/website/e2e}/**/*.spec.ts` files to
`.agents/checks/test-quality.md`, `docs/testing/README.md`, and
`docs/guidance/playwright.md`.
- **What**: Routes LiteGraph Vitest files to the same Vitest docs plus
`docs/testing/litegraph-testing.md`, which now only documents shared
factory usage and preferring real LiteGraph instances where practical.
## Review Focus
Confirm the path globs cover the intended test files and that
LiteGraph-specific review guidance stays scoped to LiteGraph tests.
## Testing
- Parsed `.coderabbit.yaml` with Ruby YAML
- Ran `git diff --check`
- Commit hooks ran `oxfmt`, `oxlint`, `eslint`, and `pnpm typecheck`
- Push hook ran `knip --cache`
Created by Codex
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Low Risk**
> Documentation and CodeRabbit review configuration only; no runtime or
test execution behavior changes.
>
> **Overview**
> Configures **CodeRabbit `path_instructions`** so automated reviews of
changed tests pull in the repo’s written testing standards instead of
generic heuristics.
>
> **Vitest** (`**/*.test.ts`) reviews must treat
`.agents/checks/test-quality.md`, `docs/testing/README.md`, and
`docs/guidance/vitest.md` as required context. **LiteGraph Vitest**
under `src/lib/litegraph/**/*.test.ts` adds
`docs/testing/litegraph-testing.md`. **Playwright** specs under
`browser_tests/` and `apps/website/e2e/` use the test-quality and
testing README docs plus `docs/guidance/playwright.md`.
>
> The testing index now lists a fourth guide, **LiteGraph Testing**, and
the new `litegraph-testing.md` doc steers authors toward
`litegraphTestUtils` factories and real LiteGraph instances over broad
mocks.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
efa11d080e. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
---------
Co-authored-by: huang47 <157390+huang47@users.noreply.github.com>
54 lines
2.4 KiB
Markdown
54 lines
2.4 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 four 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
|
|
- [LiteGraph Testing](./litegraph-testing.md) - How to test LiteGraph graph, node, link, and workflow behavior
|
|
|
|
## 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
|
|
- [@testing-library/vue](https://testing-library.com/docs/vue-testing-library/intro/) - Preferred for user-centric component testing
|
|
- [@testing-library/user-event](https://testing-library.com/docs/user-event/intro/) - Realistic user interaction simulation
|
|
- [@vue/test-utils](https://test-utils.vuejs.org/) - Vue component testing utilities (legacy; new tests must use @testing-library/vue)
|
|
- [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.
|