From: Timo Tijhof Date: Thu, 14 Sep 2017 09:48:03 +0000 (+0200) Subject: mw.loader: Add unit test to confirm implicit 'site' dependency for 'user' X-Git-Tag: 1.31.0-rc.0~2004^2~2 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=695d3ed5e36ff688a5cd17f8fc8a1564b93777f8 mw.loader: Add unit test to confirm implicit 'site' dependency for 'user' The underlying logic is in mw.loader#execute and mw.loader#runScript, but currently untested. Adding tests in prep for refactoring this code. Change-Id: I77ffb5f23443e24ca1d86f36ddf434673e9c1538 --- diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js index 985ff92c92..64415e0294 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js @@ -907,4 +907,36 @@ } ); } ); + QUnit.test( 'Implicit dependencies', function ( assert ) { + var ranUser = false, + userSeesSite = false, + ranSite = false; + + mw.loader.implement( + 'site', + function () { + ranSite = true; + } + ); + mw.loader.implement( + 'user', + function () { + userSeesSite = ranSite; + ranUser = true; + } + ); + + assert.strictEqual( ranSite, false, 'verify site module not yet loaded' ); + assert.strictEqual( ranUser, false, 'verify user module not yet loaded' ); + return mw.loader.using( 'user', function () { + assert.strictEqual( ranSite, true, 'ran site module' ); + assert.strictEqual( ranUser, true, 'ran user module' ); + assert.strictEqual( userSeesSite, true, 'ran site before user module' ); + + // Reset + mw.loader.moduleRegistry[ 'site' ].state = 'registered'; + mw.loader.moduleRegistry[ 'user' ].state = 'registered'; + } ); + } ); + }( mediaWiki, jQuery ) );