File size: 777 Bytes
52a9af3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//! Bounded startup assertions that preserve fixture failures during teardown.

use anyhow::Result;
use std::future::Future;
use std::time::Duration;
use tokio::time::timeout;

/// Allow local configuration and state-database setup on loaded CI workers.
pub const STARTUP_TIMEOUT: Duration = Duration::from_secs(/*secs*/ 30);

/// Fail before the caller's mock server drops and verifies downstream requests.
/// Returning an error instead would let an unmet mock expectation mask its cause.
pub async fn expect_startup<T>(startup: impl Future<Output = Result<T>>) -> T {
    timeout(STARTUP_TIMEOUT, startup)
        .await
        .expect("test fixture startup timed out")
        .expect("test fixture startup failed")
}

#[cfg(test)]
#[path = "startup_tests.rs"]
mod tests;