From: Timo Tijhof Date: Fri, 29 Mar 2019 20:09:32 +0000 (+0000) Subject: mediawiki.user: Improve test suite X-Git-Tag: 1.34.0-rc.0~2225^2 X-Git-Url: http://git.cyclocoop.org/%7B%24admin_url%7Dmembres/cotisations/gestion/rappel_supprimer.php?a=commitdiff_plain;h=8ffdf646b29d43064be9c14e9b42300d11412047;p=lhc%2Fweb%2Fwiklou.git mediawiki.user: Improve test suite * Add missing test for getRights with Promise. * Separate the 'callback' and 'Promise' test cases. Change-Id: Ia332f05e117512f32f71ff2e22bd76f8f1ee101c --- diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.user.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.user.test.js index 1e3521171b..24876728fd 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.user.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.user.test.js @@ -2,6 +2,7 @@ QUnit.module( 'mediawiki.user', QUnit.newMwEnvironment( { setup: function () { this.server = this.sandbox.useFakeServer(); + this.server.respondImmediately = true; // Cannot stub by simple assignment because read-only. // Instead, stub in tests by using 'delete', and re-create // in teardown using the original descriptor (including its @@ -44,28 +45,45 @@ assert.strictEqual( mw.user.id(), 'John', 'user.id()' ); } ); - QUnit.test( 'getUserInfo', function ( assert ) { + QUnit.test( 'getGroups (callback)', function ( assert ) { + var done = assert.async(); mw.config.set( 'wgUserGroups', [ '*', 'user' ] ); mw.user.getGroups( function ( groups ) { assert.deepEqual( groups, [ '*', 'user' ], 'Result' ); + done(); } ); + } ); + + QUnit.test( 'getGroups (Promise)', function ( assert ) { + mw.config.set( 'wgUserGroups', [ '*', 'user' ] ); + + return mw.user.getGroups().then( function ( groups ) { + assert.deepEqual( groups, [ '*', 'user' ], 'Result' ); + } ); + } ); + + QUnit.test( 'getRights (callback)', function ( assert ) { + var done = assert.async(); + + this.server.respond( [ 200, { 'Content-Type': 'application/json' }, + '{ "query": { "userinfo": { "groups": [ "unused" ], "rights": [ "read", "edit", "createtalk" ] } } }' + ] ); mw.user.getRights( function ( rights ) { assert.deepEqual( rights, [ 'read', 'edit', 'createtalk' ], 'Result (callback)' ); + done(); } ); + } ); - mw.user.getRights().done( function ( rights ) { - assert.deepEqual( rights, [ 'read', 'edit', 'createtalk' ], 'Result (promise)' ); - } ); + QUnit.test( 'getRights (Promise)', function ( assert ) { + this.server.respond( [ 200, { 'Content-Type': 'application/json' }, + '{ "query": { "userinfo": { "groups": [ "unused" ], "rights": [ "read", "edit", "createtalk" ] } } }' + ] ); - this.server.respondWith( /meta=userinfo/, function ( request ) { - request.respond( 200, { 'Content-Type': 'application/json' }, - '{ "query": { "userinfo": { "groups": [ "unused" ], "rights": [ "read", "edit", "createtalk" ] } } }' - ); + return mw.user.getRights().then( function ( rights ) { + assert.deepEqual( rights, [ 'read', 'edit', 'createtalk' ], 'Result (promise)' ); } ); - - this.server.respond(); } ); QUnit.test( 'generateRandomSessionId', function ( assert ) {