fix: harden Lightpanda startup timeouts (#762)
This commit is contained in:
@@ -86,6 +86,92 @@ async fn e2e_launch_navigate_evaluate_close() {
|
||||
assert_eq!(get_data(&resp)["closed"], true);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
#[ignore]
|
||||
async fn e2e_lightpanda_launch_can_open_page() {
|
||||
let lightpanda_bin = match std::env::var("LIGHTPANDA_BIN") {
|
||||
Ok(path) if !path.is_empty() => path,
|
||||
_ => return,
|
||||
};
|
||||
|
||||
let mut state = DaemonState::new();
|
||||
|
||||
let resp = tokio::time::timeout(
|
||||
tokio::time::Duration::from_secs(20),
|
||||
execute_command(
|
||||
&json!({
|
||||
"id": "1",
|
||||
"action": "launch",
|
||||
"headless": true,
|
||||
"engine": "lightpanda",
|
||||
"executablePath": lightpanda_bin,
|
||||
}),
|
||||
&mut state,
|
||||
),
|
||||
)
|
||||
.await
|
||||
.expect("Lightpanda launch should not hang");
|
||||
|
||||
assert_success(&resp);
|
||||
assert_eq!(get_data(&resp)["launched"], true);
|
||||
|
||||
let resp = execute_command(
|
||||
&json!({ "id": "2", "action": "navigate", "url": "https://example.com" }),
|
||||
&mut state,
|
||||
)
|
||||
.await;
|
||||
assert_success(&resp);
|
||||
assert_eq!(get_data(&resp)["url"], "https://example.com/");
|
||||
assert_eq!(get_data(&resp)["title"], "Example Domain");
|
||||
|
||||
let resp = execute_command(&json!({ "id": "3", "action": "close" }), &mut state).await;
|
||||
assert_success(&resp);
|
||||
assert_eq!(get_data(&resp)["closed"], true);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
#[ignore]
|
||||
async fn e2e_lightpanda_auto_launch_can_open_page() {
|
||||
let lightpanda_bin = match std::env::var("LIGHTPANDA_BIN") {
|
||||
Ok(path) if !path.is_empty() => path,
|
||||
_ => return,
|
||||
};
|
||||
|
||||
let prev_engine = std::env::var("AGENT_BROWSER_ENGINE").ok();
|
||||
let prev_path = std::env::var("AGENT_BROWSER_EXECUTABLE_PATH").ok();
|
||||
std::env::set_var("AGENT_BROWSER_ENGINE", "lightpanda");
|
||||
std::env::set_var("AGENT_BROWSER_EXECUTABLE_PATH", &lightpanda_bin);
|
||||
|
||||
let mut state = DaemonState::new();
|
||||
|
||||
let resp = tokio::time::timeout(
|
||||
tokio::time::Duration::from_secs(20),
|
||||
execute_command(
|
||||
&json!({ "id": "1", "action": "navigate", "url": "https://example.com" }),
|
||||
&mut state,
|
||||
),
|
||||
)
|
||||
.await
|
||||
.expect("Lightpanda auto-launch should not hang");
|
||||
|
||||
match prev_engine {
|
||||
Some(value) => std::env::set_var("AGENT_BROWSER_ENGINE", value),
|
||||
None => std::env::remove_var("AGENT_BROWSER_ENGINE"),
|
||||
}
|
||||
match prev_path {
|
||||
Some(value) => std::env::set_var("AGENT_BROWSER_EXECUTABLE_PATH", value),
|
||||
None => std::env::remove_var("AGENT_BROWSER_EXECUTABLE_PATH"),
|
||||
}
|
||||
|
||||
assert_success(&resp);
|
||||
assert_eq!(get_data(&resp)["url"], "https://example.com/");
|
||||
assert_eq!(get_data(&resp)["title"], "Example Domain");
|
||||
|
||||
let resp = execute_command(&json!({ "id": "2", "action": "close" }), &mut state).await;
|
||||
assert_success(&resp);
|
||||
assert_eq!(get_data(&resp)["closed"], true);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Snapshot with refs and ref-based click
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user