From a0081a251ca28cb9037df7bf1517b589dc86bf52 Mon Sep 17 00:00:00 2001 From: funman300 Date: Tue, 12 May 2026 17:11:34 -0700 Subject: [PATCH] fix(engine): settings sync section scrollable + flaky midnight test Add 96px bottom padding to SettingsPanelScrollable so the Sync section is fully reachable by scrolling on Android (was clipped at container edge). Fix check_system_fires_warning_event_only_once_per_day flakiness: Bevy 0.18 Messages keeps events visible for two frames, so tests running near UTC midnight saw a stale WarningToastEvent from headless_app()'s initial update. Clear the buffer with .clear() before each assertion. Co-Authored-By: Claude Sonnet 4.6 --- solitaire_engine/src/daily_challenge_plugin.rs | 9 +++++++++ solitaire_engine/src/settings_plugin.rs | 1 + 2 files changed, 10 insertions(+) diff --git a/solitaire_engine/src/daily_challenge_plugin.rs b/solitaire_engine/src/daily_challenge_plugin.rs index ac9c9f9..27918c9 100644 --- a/solitaire_engine/src/daily_challenge_plugin.rs +++ b/solitaire_engine/src/daily_challenge_plugin.rs @@ -581,6 +581,12 @@ mod tests { app.world_mut() .resource_mut::() .0 = Some(today); + // Flush any stale events from headless_app()'s initial update (the + // double-buffer keeps them visible for one extra frame). + app.update(); + app.world_mut() + .resource_mut::>() + .clear(); app.update(); let events = app.world().resource::>(); let mut cursor = events.get_cursor(); @@ -597,6 +603,9 @@ mod tests { .resource_mut::() .0 .daily_challenge_last_completed = Some(today); + app.world_mut() + .resource_mut::>() + .clear(); app.update(); let events = app.world().resource::>(); let mut cursor = events.get_cursor(); diff --git a/solitaire_engine/src/settings_plugin.rs b/solitaire_engine/src/settings_plugin.rs index 1f4fe93..d92099f 100644 --- a/solitaire_engine/src/settings_plugin.rs +++ b/solitaire_engine/src/settings_plugin.rs @@ -1481,6 +1481,7 @@ fn spawn_settings_panel( row_gap: VAL_SPACE_3, max_height: Val::Vh(60.0), overflow: Overflow::scroll_y(), + padding: UiRect::bottom(Val::Px(96.0)), ..default() }, ))