From b715135d11706443df27c4a18f3f9a5dd190c236 Mon Sep 17 00:00:00 2001
From: Michał Gołębiowski-Owczarek <m.goleb@gmail.com>
Date: Wed, 10 May 2023 13:39:56 +0200
Subject: Tests: Workaround a dialog test issue by a proper cleanup

The `#favorite-animal` focus & blur handlers used to not be cleaned up after
the test automatically, leading to issues with some jQuery versions.
---
 tests/unit/dialog/methods.js | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

(limited to 'tests')

diff --git a/tests/unit/dialog/methods.js b/tests/unit/dialog/methods.js
index 5d01f223d..cfdc44bb2 100644
--- a/tests/unit/dialog/methods.js
+++ b/tests/unit/dialog/methods.js
@@ -214,7 +214,7 @@ QUnit.test( "Ensure form elements don't reset when opening a dialog", function(
 } );
 
 QUnit.test( "#8958: dialog can be opened while opening", function( assert ) {
-	var ready = assert.async();
+	var ready = assert.async( 3 );
 	assert.expect( 1 );
 
 	var element = $( "<div>" ).dialog( {
@@ -227,7 +227,7 @@ QUnit.test( "#8958: dialog can be opened while opening", function( assert ) {
 	} );
 
 	// Support: IE8
-	// For some reason the #favorite-color input doesn't get focus if we don't
+	// For some reason the #favorite-animal input doesn't get focus if we don't
 	// focus the body first, causing the test to hang.
 	$( "body" ).trigger( "focus" );
 
@@ -238,6 +238,7 @@ QUnit.test( "#8958: dialog can be opened while opening", function( assert ) {
 		// the dialog to gain focus, thus blurring the input.
 		.on( "focus", function() {
 			element.dialog( "open" );
+			ready();
 		} )
 
 		// When the input blurs, the dialog is in the process of opening. We
@@ -246,6 +247,12 @@ QUnit.test( "#8958: dialog can be opened while opening", function( assert ) {
 		// being opened.
 		.on( "blur", function() {
 			element.dialog( "open" );
+
+			// Detach the handlers to avoid firing them outside of this
+			// test logic; this may affect other tests.
+			$( this ).off( "focus blur" );
+
+			ready();
 		} )
 		.trigger( "focus" );
 } );
-- 
cgit v1.2.3