Fix cursor positioning, resize, and paste; add App tests and Cursor rules
- Use CoreGraphics (core-graphics crate) for global mouse position instead of Tauri's window-relative cursor_position() which fails when hidden - Switch to titleBarStyle overlay with hiddenTitle for native resize handles while keeping the frameless look (decorations:false had no resize affordance) - Fix paste_and_refocus: use .output() instead of .spawn() so osascript actually completes, increase delay to 250ms for reliable app refocus - Add comprehensive App.test.tsx (7 integration tests) bringing total to 47 - Add multi-select and type badge tests for ClipboardList and ContextMenu - Update Tauri mock in setup.ts with innerSize/scaleFactor for resize tests - Create .cursor/rules/ with 4 rule files for project conventions - Add npm run lint and npm run check scripts - Update README with full usage table and current test counts (74 total) Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
---
|
||||
description: Testing conventions for Rust and TypeScript
|
||||
globs: "**/*.test.{ts,tsx}"
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# Testing Conventions
|
||||
|
||||
## Rust Tests (cargo test)
|
||||
|
||||
- In-module `#[cfg(test)]` blocks using `Database::in_memory()`
|
||||
- Test naming: `snake_case` describing behavior (e.g. `trim_preserves_pinned_entries`)
|
||||
- All tests must pass before committing: `cd src-tauri && cargo test`
|
||||
|
||||
## Frontend Tests (Vitest)
|
||||
|
||||
- Use `@testing-library/react` with `jsdom` environment
|
||||
- Mock Tauri APIs in `src/test/setup.ts` — never call real IPC in tests
|
||||
- Use `makeEntry()` and `makeSettings()` factories for test data
|
||||
- Call `resetIdCounter()` in `beforeEach` when IDs matter
|
||||
- When testing async Tauri commands, use `waitFor()` assertions
|
||||
- Guard `scrollIntoView` with optional chaining (`el?.scrollIntoView?.()`) since jsdom doesn't implement it
|
||||
|
||||
## Running Tests
|
||||
|
||||
```bash
|
||||
cd src-tauri && cargo test # Rust: 27 tests
|
||||
npx vitest run # Frontend: 47 tests
|
||||
```
|
||||
Reference in New Issue
Block a user