forge_runtime/testing/
mod.rs1mod assertions;
7mod context;
8mod mock;
9
10pub use assertions::*;
11pub use context::{TestContext, TestContextBuilder};
12pub use mock::{MockHttp, MockHttpBuilder, MockRequest, MockResponse};
13
14use std::time::Duration;
15
16pub const DEFAULT_TEST_TIMEOUT: Duration = Duration::from_secs(30);
18
19pub const DEFAULT_JOB_TIMEOUT: Duration = Duration::from_secs(10);
21
22pub const DEFAULT_WORKFLOW_TIMEOUT: Duration = Duration::from_secs(60);
24
25#[derive(Debug, Clone)]
27pub struct TestConfig {
28 pub database_url: Option<String>,
30 pub parallel: bool,
32 pub max_connections: u32,
34 pub default_timeout: Duration,
36 pub job_timeout: Duration,
38 pub workflow_timeout: Duration,
40 pub logging: bool,
42}
43
44impl Default for TestConfig {
45 fn default() -> Self {
46 Self {
47 database_url: std::env::var("DATABASE_URL").ok(),
48 parallel: true,
49 max_connections: 50,
50 default_timeout: DEFAULT_TEST_TIMEOUT,
51 job_timeout: DEFAULT_JOB_TIMEOUT,
52 workflow_timeout: DEFAULT_WORKFLOW_TIMEOUT,
53 logging: false,
54 }
55 }
56}
57
58#[cfg(test)]
59mod tests {
60 use super::*;
61
62 #[test]
63 fn test_config_default() {
64 let config = TestConfig::default();
65 assert!(config.parallel);
66 assert_eq!(config.max_connections, 50);
67 assert_eq!(config.default_timeout, Duration::from_secs(30));
68 }
69}