From c68a763b2dd380ad153a4468d09c442b6be887e5 Mon Sep 17 00:00:00 2001 From: David Stone Date: Tue, 14 Apr 2026 09:28:39 -0600 Subject: [PATCH] fix: unset current_screen global when original screen was null in test teardown Both finally blocks in Dashboard_Widgets_Test were skipping screen restoration when $original_screen_id was null/falsy, allowing the forced screen state set by each test (dashboard-network / dashboard) to leak into subsequent tests. Changed the guard from `if ($original_screen_id)` to `if (null !== $original_screen_id)` and added an explicit `unset($GLOBALS['current_screen'])` in the else branch so that a previously-null screen state is fully restored after each test. Resolves #841 --- tests/WP_Ultimo/Dashboard_Widgets_Test.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/WP_Ultimo/Dashboard_Widgets_Test.php b/tests/WP_Ultimo/Dashboard_Widgets_Test.php index d3a2a6405..d61dda54f 100644 --- a/tests/WP_Ultimo/Dashboard_Widgets_Test.php +++ b/tests/WP_Ultimo/Dashboard_Widgets_Test.php @@ -162,8 +162,10 @@ public function test_enqueue_scripts_enqueues_activity_stream_on_index(): void { $wp_scripts->queue = $original_queue; $wp_scripts->done = $original_done; } - if ($original_screen_id) { + if (null !== $original_screen_id) { set_current_screen($original_screen_id); + } else { + unset($GLOBALS['current_screen']); } $pagenow = $original; } @@ -209,8 +211,10 @@ public function test_enqueue_scripts_skips_activity_stream_on_per_site_dashboard $wp_scripts->queue = $original_queue; $wp_scripts->done = $original_done; } - if ($original_screen_id) { + if (null !== $original_screen_id) { set_current_screen($original_screen_id); + } else { + unset($GLOBALS['current_screen']); } $pagenow = $original; }