Assert PRD live sites reach ready web surface state

This commit is contained in:
2026-05-08 23:34:30 -04:00
parent 0203840b68
commit 31162da330
@@ -12,6 +12,7 @@ use crate::{
shell::{ shell::{
web_surface_frame::WebSurfaceFrame, web_surface_frame::WebSurfaceFrame,
web_surface_geometry::{WebSurfaceScrollOffset, WebSurfaceSize}, web_surface_geometry::{WebSurfaceScrollOffset, WebSurfaceSize},
web_surface_state::WebSurfaceState,
}, },
}; };
@@ -45,6 +46,7 @@ fn assert_web_surfaces_render(cases: &[LiveSiteCase]) -> Result<(), Box<dyn Erro
let request = store let request = store
.prepare_request(&tab, ProfileDataMode::Persistent) .prepare_request(&tab, ProfileDataMode::Persistent)
.ok_or_else(|| format!("missing web surface request for {}", case.url))?; .ok_or_else(|| format!("missing web surface request for {}", case.url))?;
let tab_id = request.tab_id.clone();
let snapshot = request.client.snapshot(request.snapshot_request)?; let snapshot = request.client.snapshot(request.snapshot_request)?;
let frame = WebSurfaceFrame::from_snapshot( let frame = WebSurfaceFrame::from_snapshot(
request.requested_url, request.requested_url,
@@ -54,6 +56,17 @@ fn assert_web_surfaces_render(cases: &[LiveSiteCase]) -> Result<(), Box<dyn Erro
snapshot, snapshot,
)?; )?;
assert_prd_frame_is_ready(&frame, case);
store.finish(tab_id, WebSurfaceState::Ready(frame));
let Some(WebSurfaceState::Ready(frame)) = store.state(tab.id()) else {
return Err(format!("web surface state is not ready for {}", case.url).into());
};
assert_prd_frame_is_ready(frame, case);
}
Ok(())
}
fn assert_prd_frame_is_ready(frame: &WebSurfaceFrame, case: &LiveSiteCase) {
assert_eq!( assert_eq!(
frame.size(), frame.size(),
WebSurfaceSize { width: LIVE_SURFACE_WIDTH, height: LIVE_SURFACE_HEIGHT }, WebSurfaceSize { width: LIVE_SURFACE_WIDTH, height: LIVE_SURFACE_HEIGHT },
@@ -64,8 +77,6 @@ fn assert_web_surfaces_render(cases: &[LiveSiteCase]) -> Result<(), Box<dyn Erro
assert!(frame.url_label().contains(normalized_url(case.url)), "{}", frame.url_label()); assert!(frame.url_label().contains(normalized_url(case.url)), "{}", frame.url_label());
assert!(frame.title_label().contains(case.title_fragment), "{}", frame.title_label()); assert!(frame.title_label().contains(case.title_fragment), "{}", frame.title_label());
assert_eq!(frame.detail_label(), "934x657", "{}", case.url); assert_eq!(frame.detail_label(), "934x657", "{}", case.url);
}
Ok(())
} }
fn live_surface_bounds() -> Bounds<gpui::Pixels> { fn live_surface_bounds() -> Bounds<gpui::Pixels> {