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 <noreply@anthropic.com>
This commit is contained in:
helgehelge123
2026-10-22 05:10:04 +02:00
co-authored by Claude Opus 5.5
parent e07c2bd44e
commit eb7513c5d2
+6 -1
View File
@@ -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
}