diff options
author | Michał Gołębiowski-Owczarek <m.goleb@gmail.com> | 2020-05-16 09:16:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-16 09:16:24 +0200 |
commit | e7a10c70ae75c741992afdda60a433be205fd85e (patch) | |
tree | 7c9f0d717f944107930608316ed346fbdf5f12c5 /tests/unit/tooltip | |
parent | f4ef03e57edd7e51cb134e902679c7bddc3daaee (diff) | |
download | jquery-ui-e7a10c70ae75c741992afdda60a433be205fd85e.tar.gz jquery-ui-e7a10c70ae75c741992afdda60a433be205fd85e.zip |
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
Diffstat (limited to 'tests/unit/tooltip')
-rw-r--r-- | tests/unit/tooltip/core.js | 7 | ||||
-rw-r--r-- | tests/unit/tooltip/deprecated.js | 7 | ||||
-rw-r--r-- | tests/unit/tooltip/events.js | 7 | ||||
-rw-r--r-- | tests/unit/tooltip/helper.js | 31 | ||||
-rw-r--r-- | tests/unit/tooltip/methods.js | 7 | ||||
-rw-r--r-- | tests/unit/tooltip/options.js | 7 |
6 files changed, 56 insertions, 10 deletions
diff --git a/tests/unit/tooltip/core.js b/tests/unit/tooltip/core.js index 2de37097a..c50164efa 100644 --- a/tests/unit/tooltip/core.js +++ b/tests/unit/tooltip/core.js @@ -1,10 +1,13 @@ define( [ "qunit", "jquery", + "./helper", "ui/widgets/tooltip" -], function( QUnit, $ ) { +], function( QUnit, $, testHelper ) { -QUnit.module( "tooltip: core" ); +var beforeAfterEach = testHelper.beforeAfterEach; + +QUnit.module( "tooltip: core", beforeAfterEach() ); QUnit.test( "markup structure", function( assert ) { assert.expect( 7 ); diff --git a/tests/unit/tooltip/deprecated.js b/tests/unit/tooltip/deprecated.js index bce1a6c6a..b44b8dcd6 100644 --- a/tests/unit/tooltip/deprecated.js +++ b/tests/unit/tooltip/deprecated.js @@ -1,10 +1,13 @@ define( [ "qunit", "jquery", + "./helper", "ui/widgets/tooltip" -], function( QUnit, $ ) { +], function( QUnit, $, testHelper ) { -QUnit.module( "tooltip: (deprecated) options" ); +var beforeAfterEach = testHelper.beforeAfterEach; + +QUnit.module( "tooltip: (deprecated) options", beforeAfterEach() ); QUnit.test( "tooltipClass", function( assert ) { assert.expect( 1 ); diff --git a/tests/unit/tooltip/events.js b/tests/unit/tooltip/events.js index 3fbb683a5..1e83c5255 100644 --- a/tests/unit/tooltip/events.js +++ b/tests/unit/tooltip/events.js @@ -1,10 +1,13 @@ define( [ "qunit", "jquery", + "./helper", "ui/widgets/tooltip" -], function( QUnit, $ ) { +], function( QUnit, $, testHelper ) { -QUnit.module( "tooltip: events" ); +var beforeAfterEach = testHelper.beforeAfterEach; + +QUnit.module( "tooltip: events", beforeAfterEach() ); QUnit.test( "programmatic triggers", function( assert ) { assert.expect( 4 ); diff --git a/tests/unit/tooltip/helper.js b/tests/unit/tooltip/helper.js new file mode 100644 index 000000000..01d4c03ac --- /dev/null +++ b/tests/unit/tooltip/helper.js @@ -0,0 +1,31 @@ +define( [ + "qunit", + "jquery", + "lib/helper", + "ui/widgets/tooltip" +], function( QUnit, $, helper ) { + + return $.extend( helper, { + beforeAfterEach: function() { + return { + afterEach: function() { + var index, timer, + timers = jQuery.timers; + + jQuery.fx.stop(); + var x = false; + + for ( index = timers.length; index--; ) { + x = true; + timer = timers[ index ]; + timer.anim.stop(); + timers.splice( index, 1 ); + } + + return helper.moduleAfterEach.apply( this, arguments ); + } + }; + } + } ); + +} ); diff --git a/tests/unit/tooltip/methods.js b/tests/unit/tooltip/methods.js index 6e0af2eb4..d71c5e0a6 100644 --- a/tests/unit/tooltip/methods.js +++ b/tests/unit/tooltip/methods.js @@ -1,10 +1,13 @@ define( [ "qunit", "jquery", + "./helper", "ui/widgets/tooltip" -], function( QUnit, $ ) { +], function( QUnit, $, testHelper ) { -QUnit.module( "tooltip: methods" ); +var beforeAfterEach = testHelper.beforeAfterEach; + +QUnit.module( "tooltip: methods", beforeAfterEach() ); QUnit.test( "destroy", function( assert ) { assert.expect( 3 ); diff --git a/tests/unit/tooltip/options.js b/tests/unit/tooltip/options.js index 4354d89b3..b9c056388 100644 --- a/tests/unit/tooltip/options.js +++ b/tests/unit/tooltip/options.js @@ -1,10 +1,13 @@ define( [ "qunit", "jquery", + "./helper", "ui/widgets/tooltip" -], function( QUnit, $ ) { +], function( QUnit, $, testHelper ) { -QUnit.module( "tooltip: options" ); +var beforeAfterEach = testHelper.beforeAfterEach; + +QUnit.module( "tooltip: options", beforeAfterEach() ); QUnit.test( "disabled: true", function( assert ) { assert.expect( 1 ); |