diff --git a/src/browser_retirement.rs b/src/browser_retirement.rs
index 7090dfa..d20d7da 100644
--- a/src/browser_retirement.rs
+++ b/src/browser_retirement.rs
@@ -1127,6 +1127,12 @@ async fn retire(
let _ = browser
.close_owned_target(id, remaining(operation_deadline)?, cancel)
.await;
+ #[cfg(test)]
+ let operation_deadline = crate::browser_target::TEST_CLOSE_WAIT
+ .get()
+ .map_or(operation_deadline, |wait| {
+ operation_deadline.min(Instant::now() + wait)
+ });
loop {
if targets(&browser, operation_deadline)
.await?
diff --git a/src/browser_runner.rs b/src/browser_runner.rs
index 7ee8c26..4a56393 100644
--- a/src/browser_runner.rs
+++ b/src/browser_runner.rs
@@ -4186,10 +4186,22 @@ fn capture_image_summary(
let capture = capture_outcome(store, id, witness, outcome, &text, None, cancel)?;
Ok((capture, text))
}
+const ATTACHMENT_BUDGET_FLOOR: Duration = Duration::from_secs(45);
+#[cfg(test)]
+thread_local! {
+ static TEST_ATTACHMENT_BUDGET_FLOOR: std::cell::Cell