Assert PRD live sites reach ready web surface state
This commit is contained in:
@@ -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> {
|
||||||
|
|||||||
Reference in New Issue
Block a user