//! Common test utilities and helpers for Foxhunt testing suites //! //! This crate provides shared utilities, fixtures, and helper functions //! used across all test suites in the Foxhunt system. #![allow(dead_code)] pub mod fixtures; pub mod generators; pub mod assertions; pub mod mocks; pub mod test_data; pub mod database_helpers; use std::sync::Once; use tracing_subscriber; static INIT: Once = Once::new(); /// Initialize logging for tests - safe to call multiple times pub fn init_test_logging() { INIT.call_once(|| { tracing_subscriber::fmt() .with_env_filter("debug") .with_test_writer() .try_init() .ok(); // Ignore errors if already initialized }); } /// Test configuration constants pub mod constants { use common::error::CommonError; use common::error::CommonResult; use common::database::DatabaseConfig; use common::database::DatabasePool; use common::types::Order; use common::types::Position; use common::types::Symbol; use common::types::Price; use common::types::Quantity; use common::types::HftTimestamp; use std::time::Duration; pub const DEFAULT_TIMEOUT: Duration = Duration::from_secs(30); pub const FAST_TIMEOUT: Duration = Duration::from_secs(5); pub const SLOW_TIMEOUT: Duration = Duration::from_secs(120); pub const MIN_PRICE: Decimal = Decimal::from_parts(1, 0, 0, false, 8); // 0.00000001 pub const MAX_PRICE: Decimal = Decimal::from_parts(1000000, 0, 0, false, 0); // 1,000,000 pub const MIN_QUANTITY: Decimal = Decimal::from_parts(1, 0, 0, false, 8); pub const MAX_QUANTITY: Decimal = Decimal::from_parts(1000000, 0, 0, false, 0); }