jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/348251 )
Change subject: qunit: Improve testrunner logging for pending ajax ...................................................................... qunit: Improve testrunner logging for pending ajax * Move `restoreWarnings()` in tearDown() to the mirrored location of related code in setUp(). * Ensure that accidentally calling `suppressWarnings()` twice will not wipe out the original reference indefinitely. If it was already set, subsequent calls should do nothing instead of overwriting them again so that recovery is still possible. * Log all ajax requests logged during the test, not just the one currently still pending. This should avoid situations where we throw "Pending ajax requests" but no information is logged about which requests those might be. Change-Id: I900ad98c4c8520bdd6ae00a24ac82272f3becfee --- M tests/qunit/data/testrunner.js 1 file changed, 14 insertions(+), 9 deletions(-) Approvals: jenkins-bot: Verified Jforrester: Looks good to me, approved diff --git a/tests/qunit/data/testrunner.js b/tests/qunit/data/testrunner.js index b0118af..55bd276 100644 --- a/tests/qunit/data/testrunner.js +++ b/tests/qunit/data/testrunner.js @@ -131,9 +131,11 @@ liveMessages = mw.messages; function suppressWarnings() { - warn = mw.log.warn; - error = mw.log.error; - mw.log.warn = mw.log.error = $.noop; + if ( warn === undefined ) { + warn = mw.log.warn; + error = mw.log.error; + mw.log.warn = mw.log.error = $.noop; + } } function restoreWarnings() { @@ -215,6 +217,10 @@ // Stop tracking ajax requests $( document ).off( 'ajaxSend', trackAjax ); + // As a convenience feature, automatically restore warnings if they're + // still suppressed by the end of the test. + restoreWarnings(); + // Farewell, mock environment! mw.config = liveConfig; mw.messages = liveMessages; @@ -222,10 +228,6 @@ mw.jqueryMsg.setParserDefaults( { messages: liveMessages } ); - - // As a convenience feature, automatically restore warnings if they're - // still suppressed by the end of the test. - restoreWarnings(); // Tests should use fake timers or wait for animations to complete // Check for incomplete animations/requests/etc and throw if there are any. @@ -253,8 +255,11 @@ mw.log.warn( 'Pending requests does not match jQuery.active count' ); } // Force requests to stop to give the next test a clean start - $.each( pending, function ( i, ajax ) { - mw.log.warn( 'Pending AJAX request #' + i, ajax.options ); + $.each( ajaxRequests, function ( i, ajax ) { + mw.log.warn( + 'AJAX request #' + i + ' (state: ' + ajax.xhr.state() + ')', + ajax.options + ); ajax.xhr.abort(); } ); ajaxRequests = []; -- To view, visit https://gerrit.wikimedia.org/r/348251 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I900ad98c4c8520bdd6ae00a24ac82272f3becfee Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Krinkle <krinklem...@gmail.com> Gerrit-Reviewer: Jforrester <jforres...@wikimedia.org> Gerrit-Reviewer: Umherirrender <umherirrender_de...@web.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits