# Development

## Testing

```sh
cargo test --all-features
cargo clippy --all-targets --all-features
```

The crate ships 141 tests (80 unit + 60 integration + 1 doctest)
covering every filter mode, expand/collapse round-trips, both
single- and multi-select (Replace / Toggle / ExtendRange, with
survival across runtime filter changes), stale-result rejection,
permission-denied, keyboard bindings (including Shift-range,
`Space`-toggle, and `Escape` to cancel drags), custom executor
integration, the full drag-and-drop state machine
(is-valid-target rules, Pressed/Entered/Exited/Released/Cancelled
transitions, multi-item drag, descendant rejection), v0.5
prefetch (select-targets edge cases, cascade prevention,
limit/max_depth interaction, instant-fast-path on prefetched
click), v0.6 incremental search (case-insensitive basename
matching, multi-subtree, empty-clears, case-insensitivity,
selection preservation, filter-change-re-runs, collapsed-subtree
descent, on-loaded-recomputes), and v0.6.1 prefetch safety valve
(default-skips-.git/node_modules/target, custom-replaces-default,
empty-disables, exact-basename-not-substring, ASCII-case-
insensitive, user-click-still-scans-skipped). See the
[CHANGELOG](../CHANGELOG.md) for the per-release breakdown and
[ROADMAP](../ROADMAP.md) for what's next.
