CodeVetter · Repo Unpack · Testing signals
clash-verge-rev/clash-verge-rev
Tests are real but narrow and mostly not wired into CI. Vitest covers a handful of frontend delay, event, and proxy-sort units. Rust tests sit next to the core manager, run state, enhancer, and command-error types and are the safety net for lifecycle decisions. The workflows that were read format-check or build release artifacts; they do not invoke pnpm test or cargo test. CONTRIBUTING.md treats new tests as optional and asks for clippy, eslint, and rustfmt instead.
- package.json test is vitest run. vitest.config.mts includes tests/**/*.test.ts and src/**/*.test.ts in the node environment. There is no top-level tests/ directory, so only src/**/*.test.ts files run.
- Frontend Vitest files found are src/services/delay.test.ts, src/services/events.test.ts, src/pages/_layout/hooks/use-layout-events.test.ts, src/utils/delay.test.ts, and src/components/proxy/use-filter-sort.test.ts. They cover delay sorting, event subscription readiness, and DNS/service notice draining, not pages or IPC.
- scripts/perf/report.test.mjs uses node:test for perf-report quantiles and schema. package.json perf:test runs it. macOS perf-harness is a separate Cargo feature pulling tauri-plugin-wdio-webdriver.
- Rust #[cfg(test)] modules include command failure wire format in cmd/mod.rs, singleton startup actions in lib.rs, fake-ip DNS defaults in enhance/mod.rs, CoreManager lifecycle decisions in core/manager/lifecycle.rs, and PAC fail-closed behavior in utils/server.rs.
- Further Rust tests live beside core/runstate, core/proxy_view.rs, core/owner_identity.rs, core/timer.rs, core/runtime_bundle.rs, core/manager/state.rs, and enhance/seq.rs. clash-verge-draft has tests/test_me.rs and a criterion bench at bench/benche_me.rs.
- Makefile.toml tasks are rust-format, rust-clippy with -D warnings on all targets and features, pnpm typecheck, knip, lint-staged, and i18n format/types. It has no test task.
- CONTRIBUTING.md tells contributors to run cargo clippy-all, pnpm lint, and cargo fmt. It says not to add tests unless the linked issue needs them. docs/CONTRIBUTING_i18n.md says to run pnpm test when translation-consuming code changes.
- rustfmt.yml runs on pull requests only when Rust paths change, and only checks formatting. release.yml checks tag versus package.json and builds. dev.yml is a manual installer matrix. None of those three workflows invoke cargo test or pnpm test.
- Workspace clippy lints are deny for panic, unwrap is warn, expect_used is warn, cognitive_complexity is deny, and correctness/suspicious are deny. Tests in the repo often allow clippy::expect_used locally.
- No Vitest file covers profile import, the settings panels, the router, WebDAV, or service install. Those flows are only exercised by the Rust command and lifecycle tests where such tests exist, and those tests are not started by the CI workflows above. (inferred)