813fb896ff
Pulls three pattern groups into shared helpers so a rename or wire-format tweak edits one file instead of 10+: - BulkAction enum in doctate-common replaces the "close"/"analyze"/"reset" string literals that were duplicated between the bulk handler and 3 attack/CSRF test files. FromStr preserves the exact "Unbekannte Aktion" error shape; the handler match is now exhaustive over the enum. - join_url helper in doctate-common absorbs 7 identical trim_end_matches+format! call sites across client-core, client-desktop, server/transcribe (ollama, whisper), and server/analyze (llm). - server/tests/common/artefacts.rs re-exports ONELINER_FILENAME (doctate-common), DOCUMENT_FILE + ANALYSIS_INPUT_FILE (doctate-server::analyze), and CLOSE_MARKER (doctate-server::paths) so test files reference the canonical name instead of inlining literals. Also lifts client-desktop local duplication: - paths.rs: project_path helper collapses 4 identical ProjectDirs chains - main.rs: or_die helper replaces 4 eprintln!+exit(1) blocks - app.rs: named RecordingContext struct replaces (Uuid, String) tuple at 3 sites around the ffmpeg-flush finalization path Verification: 397 tests pass (baseline was 389; +8 for new unit tests on BulkAction and join_url), 0 failed, 4 ignored (unchanged). clippy clean.
43 lines
1.7 KiB
Rust
43 lines
1.7 KiB
Rust
//! Shared test-support helpers for `server/tests/*.rs`.
|
|
//!
|
|
//! Every integration test file under `tests/*.rs` is a standalone crate.
|
|
//! This module's special filename `mod.rs` prevents Cargo from
|
|
//! compiling it as its own test target — it is only loaded by test
|
|
//! files that opt in via `mod common;` at the top.
|
|
//!
|
|
//! `#[allow(dead_code)]` is applied because each test crate uses only
|
|
//! a subset of the helpers; without the allow, rustc emits a forest of
|
|
//! warnings for the unused ones in each crate.
|
|
|
|
#![allow(dead_code)]
|
|
// Re-exports below are visible to every test crate, but each crate only
|
|
// uses a subset — without the allow, rustc emits "unused import"
|
|
// warnings per crate. The helpers themselves are exercised; the
|
|
// warning is a false positive of the per-crate visibility model.
|
|
#![allow(unused_imports)]
|
|
|
|
pub mod artefacts;
|
|
pub mod config;
|
|
pub mod http;
|
|
pub mod paths;
|
|
pub mod seed;
|
|
pub mod session;
|
|
pub mod users;
|
|
|
|
// Re-exports for ergonomic `use common::*;` in most test files.
|
|
pub use artefacts::{ANALYSIS_INPUT_FILE, CLOSE_MARKER, DOCUMENT_FILE, ONELINER_FILENAME};
|
|
pub use config::{TestConfig, unique_tmpdir};
|
|
pub use http::{
|
|
body_bytes, body_json, body_string, csrf_form_post, form_post, get_with_api_key,
|
|
get_with_api_key_if_none_match, get_with_cookie, header_opt, header_str, multipart_upload_body,
|
|
};
|
|
pub use seed::{
|
|
past_rfc3339, seed_case, seed_oneliner_ready, seed_oneliner_state, seed_recording,
|
|
seed_recording_with_age, seed_recording_with_sidecars, write_closed_marker,
|
|
};
|
|
pub use session::{extract_session_cookie, login, login_request, login_with_csrf};
|
|
pub use users::{
|
|
TEST_BCRYPT_COST, TEST_PASSWORD, test_admin, test_user, test_user_with_password,
|
|
test_user_with_retention, test_user_with_window_hours,
|
|
};
|