jquery-ui/tests/unit/datepicker/helper.js
Michał Gołębiowski-Owczarek e7a10c70ae
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
2020-05-16 09:16:24 +02:00

46 lines
1.1 KiB
JavaScript

define( [
"qunit",
"jquery",
"lib/helper",
"ui/widgets/datepicker"
], function( QUnit, $, helper ) {
return $.extend( helper, {
addMonths: function( date, offset ) {
var maxDay = 32 - new Date( date.getFullYear(), date.getMonth() + offset, 32 ).getDate();
date.setDate( Math.min( date.getDate(), maxDay ) );
date.setMonth( date.getMonth() + offset );
return date;
},
equalsDate: function( assert, d1, d2, message ) {
if ( !d1 || !d2 ) {
assert.ok( false, message + " - missing date" );
return;
}
d1 = new Date( d1.getFullYear(), d1.getMonth(), d1.getDate() );
d2 = new Date( d2.getFullYear(), d2.getMonth(), d2.getDate() );
assert.equal( d1.toString(), d2.toString(), message );
},
beforeAfterEach: function() {
return {
afterEach: helper.moduleAfterEach
};
},
init: function( id, options ) {
$.datepicker.setDefaults( $.datepicker.regional[ "" ] );
return $( id ).datepicker( $.extend( { showAnim: "" }, options || {} ) );
},
initNewInput: function( options ) {
var id = $( "<input>" ).appendTo( "#qunit-fixture" );
return this.init( id, options );
},
PROP_NAME: "datepicker"
} );
} );