From: Dave Methvin Date: Tue, 28 Jun 2016 20:24:28 +0000 (-0700) Subject: Port #20198 to v3 X-Git-Tag: v3.3.7~37^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc05ef16ecc1bac850ed4230f6daac12b104de8c;p=thirdparty%2Fbootstrap.git Port #20198 to v3 ScrollSpy unit test: Use single done() in a then() instead of multiple done()s Fixes test flakiness on OS X Safari and Android when using jQuery 3. Fixes #20182 more Refs #20191 --- diff --git a/js/tests/unit/scrollspy.js b/js/tests/unit/scrollspy.js index d50573f27a..be6808e2e6 100644 --- a/js/tests/unit/scrollspy.js +++ b/js/tests/unit/scrollspy.js @@ -131,13 +131,12 @@ $(function () { .appendTo('#qunit-fixture') .bootstrapScrollspy({ offset: 0, target: '.navbar' }) + var done = assert.async() var testElementIsActiveAfterScroll = function (element, target) { var deferred = $.Deferred() var scrollHeight = Math.ceil($content.scrollTop() + $(target).position().top) - var done = assert.async() $content.one('scroll', function () { assert.ok($(element).hasClass('active'), 'target:' + target + ', element' + element) - done() deferred.resolve() }) $content.scrollTop(scrollHeight) @@ -146,6 +145,7 @@ $(function () { $.when(testElementIsActiveAfterScroll('#li-1', '#div-1')) .then(function () { return testElementIsActiveAfterScroll('#li-2', '#div-2') }) + .then(function () { done() }) }) QUnit.test('should add the active class correctly when there are nested elements at 0 scroll offset', function (assert) {