Testing
This guide explains Cheolsu Proxy's testing strategy and execution methods.
Testing Strategy
Test Pyramid
- Unit Tests: Individual function/method testing
- Integration Tests: Inter-module interaction testing
- E2E Tests: Full application testing
Rust Tests
The simplest way is the root script, which sets the OpenSSL dylib path automatically.
CI runs it in two steps (proxyapi_v2 needs the full feature).
On macOS, if
libssl.3.dylibcan't be found when running directly, add the bundle path (desktop/src-tauri/openssl-bundle/lib) toDYLD_LIBRARY_PATH, or setOPENSSL_DIR=/opt/homebrew/opt/openssl@3.
Rust Formatting
Frontend Tests
Tests run with bun test (from the desktop/ directory).
JavaScript/TypeScript Lint & Format
Run from the repository root (oxlint / oxfmt).
i18n Catalog Sync
If you changed GUI code (strings), regenerate the catalog and commit it. CI verifies the catalog is up to date.
CI Checks
A PR must pass the following:
- Rust Format Check —
cargo fmt --all -- --check - Rust Unit Test — workspace +
proxyapi_v2 --features full - JavaScript/TypeScript Lint Check —
format:check,lint, i18n catalog sync - Frontend Unit Test —
bun test
