From e7a10c70ae75c741992afdda60a433be205fd85e Mon Sep 17 00:00:00 2001 From: Michał Gołębiowski-Owczarek Date: Sat, 16 May 2020 09:16:24 +0200 Subject: Tests: Ensure no timers are running at the end of each test (#1920) This helps fix issues that make tooltip tests sometimes fail when run against jQuery 3.2 or newer due to timing differences. Details: * Add the `moduleAfterEach` function ensuring no timers are running. * Attach this function via `common.testWidget`. * Attach this function to most test suites. * Add a tooltip test helper cleaning up leftover timers. * Rename legacy `setup`/`teardown` hooks to `beforeEach`/`afterEach`. Closes gh-1920 --- tests/unit/effects/core.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'tests/unit/effects/core.js') diff --git a/tests/unit/effects/core.js b/tests/unit/effects/core.js index d095bfbd5..7ae56aef5 100644 --- a/tests/unit/effects/core.js +++ b/tests/unit/effects/core.js @@ -2,6 +2,7 @@ define( [ "qunit", "jquery", "lib/common", + "lib/helper", "ui/effect", "ui/effects/effect-blind", "ui/effects/effect-bounce", @@ -18,7 +19,7 @@ define( [ "ui/effects/effect-size", "ui/effects/effect-slide", "ui/effects/effect-transfer" -], function( QUnit, $, common ) { +], function( QUnit, $, common, helper ) { QUnit.assert.present = function( value, array, message ) { this.push( jQuery.inArray( value, array ) !== -1, value, array, message ); @@ -34,7 +35,7 @@ var minDuration = 60, // Duration is used for "long" animates where we plan on testing properties during animation duration = 200; -QUnit.module( "effects.core" ); +QUnit.module( "effects.core", { afterEach: helper.moduleAfterEach } ); // TODO: test all signatures of .show(), .hide(), .toggle(). // Look at core's signatures and UI's signatures. @@ -97,7 +98,7 @@ QUnit.test( "removeClass", function( assert ) { assert.equal( "", element[ 0 ].className ); } ); -QUnit.module( "effects.core: animateClass" ); +QUnit.module( "effects.core: animateClass", { afterEach: helper.moduleAfterEach } ); QUnit.test( "animateClass works with borderStyle", function( assert ) { var ready = assert.async(); @@ -273,7 +274,7 @@ QUnit.test( "createPlaceholder: preserves layout affecting properties", function assert.deepEqual( before.outerHeight, placeholder.outerHeight( true ), "height preserved" ); } ); -QUnit.module( "transfer" ); +QUnit.module( "transfer", { afterEach: helper.moduleAfterEach } ); QUnit.test( "transfer() without callback", function( assert ) { var ready = assert.async(); -- cgit v1.2.3