-
Notifications
You must be signed in to change notification settings - Fork 0
how to contribute testing
CSV Align uses Rust integration tests, Tauri wrapper tests, and colocated frontend tests. The expected validation commands are also listed in /Users/vriesd/projects/csv-align/AGENTS.md.
Run from /Users/vriesd/projects/csv-align:
cargo fmt --check
cargo test
cargo clippy -- -D warningsRoot Rust tests cover the shared library crate, Axum handlers, workflow contracts, persistence, export behavior, release metadata scripts, and packaging helpers. Public workflow coverage belongs in /Users/vriesd/projects/csv-align/tests/.
Run from /Users/vriesd/projects/csv-align:
(cd /Users/vriesd/projects/csv-align/src-tauri && cargo test && cargo fmt --check && cargo clippy -- -D warnings)Tauri tests cover desktop command behavior, command registration parity, file-dialog wrapper helpers, pair-order save/load behavior, and comparison snapshot save/load behavior. Keep Tauri-specific tests under /Users/vriesd/projects/csv-align/src-tauri/src/.
Run from /Users/vriesd/projects/csv-align:
(cd /Users/vriesd/projects/csv-align/frontend && npm test && npm run lint && npm run build)Frontend tests are colocated under /Users/vriesd/projects/csv-align/frontend/src/. CI runs frontend tests and lint for frontend changes, and always builds the frontend when Tauri packaging needs /Users/vriesd/projects/csv-align/frontend/dist.
Transport parity is a release-critical invariant:
-
/Users/vriesd/projects/csv-align/tests/transport_parity_integration.rschecks that frontend HTTP route templates match backend route constants. -
/Users/vriesd/projects/csv-align/src-tauri/src/tests.rschecks Tauri command registration and wrapper behavior. -
/Users/vriesd/projects/csv-align/frontend/src/services/tauri.test.tschecks browser and desktop branches in the frontend transport switch.
When a transport operation changes, update both the Rust and TypeScript constants before changing tests.
Test helpers live in /Users/vriesd/projects/csv-align/tests/common/ when shared across integration tests. Frontend render fixtures live under /Users/vriesd/projects/csv-align/frontend/src/test/. Sample CSV files in /Users/vriesd/projects/csv-align/samples/ are useful for manual checks, but regression tests should use controlled fixture data rather than private user files.
| File | Coverage |
|---|---|
/Users/vriesd/projects/csv-align/tests/comparison_engine_integration.rs |
Row matching, duplicates, flexible keys, JSON comparison, and normalization behavior. |
/Users/vriesd/projects/csv-align/tests/backend_workflow_integration.rs |
Session workflow, stale writeback, file loading, compare execution, and saved work behavior. |
/Users/vriesd/projects/csv-align/tests/response_contracts.rs |
Stable API response shapes, errors, result variants, snapshots, and exports. |
/Users/vriesd/projects/csv-align/tests/transport_parity_integration.rs |
Backend route and frontend route template parity. |
/Users/vriesd/projects/csv-align/tests/linux_package_metadata_integration.rs |
Linux package metadata validators, RPM builder, APT repository builder, and installer contracts. |
/Users/vriesd/projects/csv-align/src-tauri/src/tests.rs |
Desktop command registration and wrapper contracts. |
/Users/vriesd/projects/csv-align/src-tauri/src/pair_order_tests.rs |
Desktop pair-order file dialog helper behavior. |
/Users/vriesd/projects/csv-align/src-tauri/src/comparison_snapshot_tests.rs |
Desktop comparison snapshot file dialog helper behavior. |
/Users/vriesd/projects/csv-align/frontend/src/hooks/useComparisonWorkflow.test.ts |
Frontend workflow behavior. |
/Users/vriesd/projects/csv-align/frontend/src/components/ResultsTable.test.tsx |
Results table presentation and interaction coverage. |