Roo-Code/.roo/rules/rules.md
KJ7LNW 9fce90be9d
fix: add run parameter to vitest command in rules (#5991)
When running vitest without the run parameter, it enters watch mode and waits for user input (like pressing q to quit), causing tests to hang in the terminal.

This change updates the documentation to specify using npx vitest run instead of just npx vitest to ensure tests run to completion without requiring user interaction.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-07-20 22:48:11 -04:00

1.4 KiB

Code Quality Rules

  1. Test Coverage:

    • Before attempting completion, always make sure that any code changes have test coverage
    • Ensure all tests pass before submitting changes
    • The vitest framework is used for testing; the describe, test, it, etc functions are defined by default in tsconfig.json and therefore don't need to be imported
    • Tests must be run from the same directory as the package.json file that specifies vitest in devDependencies
    • Run tests with: npx vitest run <relative-path-from-workspace-root>
    • Do NOT run tests from project root - this causes "vitest: command not found" error
    • Tests must be run from inside the correct workspace:
      • Backend tests: cd src && npx vitest run path/to/test-file (don't include src/ in path)
      • UI tests: cd webview-ui && npx vitest run src/path/to/test-file
    • Example: For src/tests/user.test.ts, run cd src && npx vitest run tests/user.test.ts NOT npx vitest run src/tests/user.test.ts
  2. Lint Rules:

    • Never disable any lint rules without explicit user approval
  3. Styling Guidelines:

    • Use Tailwind CSS classes instead of inline style objects for new markup
    • VSCode CSS variables must be added to webview-ui/src/index.css before using them in Tailwind classes
    • Example: <div className="text-md text-vscode-descriptionForeground mb-2" /> instead of style objects