From eb7513c5d2657846bdd0f4db83b856dfe8cd0b74 Mon Sep 17 00:00:00 2001 From: helgehelge123 <117832631+helgehelge123@users.noreply.github.com> Date: Thu, 22 Oct 2026 05:10:04 +0200 Subject: [PATCH] LRC-LIB-LIBFOLDERS: deep_folders_app waits for each row before opening it On the FreeBSD runner a click's synthetic input can arrive a frame or two late, so after opening `/a/b/c/d` the row of `/a/b/c/d/e` was not drawn yet when the next click asked for it. The fixture now steps until each level's chevron is drawn before clicking it. Co-Authored-By: Claude Opus 5.5 --- crates/ui-egui/src/tests_panels.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/ui-egui/src/tests_panels.rs b/crates/ui-egui/src/tests_panels.rs index dd2d268fd..a06d470e3 100644 --- a/crates/ui-egui/src/tests_panels.rs +++ b/crates/ui-egui/src/tests_panels.rs @@ -1810,9 +1810,14 @@ fn deep_folders_app(deep: &str, size: [f32; 2]) -> Headless { } let paths: Vec<&str> = paths.iter().map(String::as_str).collect(); let mut h = folders_app_sized(&paths, size); + // each level is opened once its row is drawn (a slow machine may need more than a frame) for level in &levels[..levels.len() - 1] { - click(&mut h, &format!("libraryFolderToggle:{level}")); + let toggle = format!("libraryFolderToggle:{level}"); + assert!(h.step_until(T, |h| has(h, &toggle)), "{toggle} is drawn"); + click(&mut h, &toggle); } + let last = format!("libraryFolderToggle:{}", levels[levels.len() - 1]); + assert!(h.step_until(T, |h| has(h, &last)), "{last} is drawn"); h.settle(SETTLE); h }