jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/327196 )

Change subject: Hygiene: Make mw.popups#isEnabled return boolean
......................................................................


Hygiene: Make mw.popups#isEnabled return boolean

Action changes:
* Update the BOOT action to include isEnabled and update the associated
  tests.

Reducer changes:
* Make the preview and eventLogging reducers handle the BOOT action's
  new shape.

Bug: T152687
Change-Id: I3fa2098269a32912eda99ceb8f13887688a14c15
---
M resources/ext.popups/actions.js
M resources/ext.popups/isEnabled.js
M resources/ext.popups/reducers/eventLogging.js
M resources/ext.popups/reducers/preview.js
M tests/qunit/ext.popups/actions.test.js
M tests/qunit/ext.popups/isEnabled.test.js
M tests/qunit/ext.popups/reducers/eventLogging.test.js
M tests/qunit/ext.popups/reducers/preview.test.js
8 files changed, 23 insertions(+), 33 deletions(-)

Approvals:
  Pmiazga: Looks good to me, but someone else must approve
  jenkins-bot: Verified
  Jdlrobson: Looks good to me, approved



diff --git a/resources/ext.popups/actions.js b/resources/ext.popups/actions.js
index 98dd922..d219c38 100644
--- a/resources/ext.popups/actions.js
+++ b/resources/ext.popups/actions.js
@@ -52,7 +52,7 @@
         * 
[`mw.requestIdleCallback`](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback))
         * so as not to impact latency-critical events.
         *
-        * @param {Function} isUserInCondition See `mw.popups.createExperiment`
+        * @param {Boolean} isEnabled See `mw.popups.isEnabled`
         * @param {mw.user} user
         * @param {ext.popups.UserSettings} userSettings
         * @param {Function} generateToken
@@ -60,7 +60,7 @@
         *  i.e. `mw.config`
         */
        actions.boot = function (
-               isUserInCondition,
+               isEnabled,
                user,
                userSettings,
                generateToken,
@@ -71,6 +71,7 @@
 
                return {
                        type: types.BOOT,
+                       isEnabled: isEnabled,
                        sessionToken: user.sessionId(),
                        pageToken: generateToken(),
                        page: {
@@ -79,7 +80,6 @@
                                id: config.get( 'wgArticleId' )
                        },
                        user: {
-                               isInCondition: isUserInCondition(),
                                isAnon: user.isAnon(),
                                editCount: editCount,
                                previewCount: previewCount
diff --git a/resources/ext.popups/isEnabled.js 
b/resources/ext.popups/isEnabled.js
index a82f3ab..368ace8 100644
--- a/resources/ext.popups/isEnabled.js
+++ b/resources/ext.popups/isEnabled.js
@@ -17,17 +17,15 @@
         * @param {Object} userSettings An object returned by
         *  `mw.popups.createUserSettings`
         *
-        * @return {Function}
+        * @return {Boolean}
         */
        mw.popups.isEnabled = function ( user, userSettings ) {
-               return function () {
-                       if ( user.isAnon() ) {
-                               return false;
-                       }
+               if ( user.isAnon() ) {
+                       return false;
+               }
 
-                       return !userSettings.hasIsEnabled() ||
-                               ( userSettings.hasIsEnabled() && 
userSettings.getIsEnabled() );
-               };
+               return !userSettings.hasIsEnabled() ||
+                       ( userSettings.hasIsEnabled() && 
userSettings.getIsEnabled() );
        };
 
 }( mediaWiki ) );
diff --git a/resources/ext.popups/reducers/eventLogging.js 
b/resources/ext.popups/reducers/eventLogging.js
index 2ce4bcd..af8e7b3 100644
--- a/resources/ext.popups/reducers/eventLogging.js
+++ b/resources/ext.popups/reducers/eventLogging.js
@@ -41,7 +41,7 @@
                                                namespaceIdSource: 
action.page.namespaceID,
                                                pageIdSource: action.page.id,
                                                isAnon: action.user.isAnon,
-                                               popupEnabled: 
action.user.isInCondition,
+                                               popupEnabled: action.isEnabled,
                                                pageToken: action.pageToken,
                                                sessionToken: 
action.sessionToken,
                                                editCountBucket: 
popups.counts.getEditCountBucket( action.user.editCount ),
diff --git a/resources/ext.popups/reducers/preview.js 
b/resources/ext.popups/reducers/preview.js
index 7793eca..098af59 100644
--- a/resources/ext.popups/reducers/preview.js
+++ b/resources/ext.popups/reducers/preview.js
@@ -22,7 +22,7 @@
                switch ( action.type ) {
                        case popups.actionTypes.BOOT:
                                return nextState( state, {
-                                       enabled: action.user.isInCondition
+                                       enabled: action.isEnabled
                                } );
                        case popups.actionTypes.SETTINGS_CHANGE:
                                return nextState( state, {
diff --git a/tests/qunit/ext.popups/actions.test.js 
b/tests/qunit/ext.popups/actions.test.js
index ef7dfb6..834bdc8 100644
--- a/tests/qunit/ext.popups/actions.test.js
+++ b/tests/qunit/ext.popups/actions.test.js
@@ -7,10 +7,7 @@
        QUnit.module( 'ext.popups/actions' );
 
        QUnit.test( '#boot', function ( assert ) {
-               var isUserInCondition = function () {
-                               return false;
-                       },
-                       config = new mw.Map(),
+               var config = new mw.Map(),
                        stubUser = mw.popups.tests.stubs.createStubUser( /* 
isAnon = */ true ),
                        stubUserSettings,
                        action;
@@ -31,7 +28,7 @@
                assert.expect( 1 );
 
                action = mw.popups.actions.boot(
-                       isUserInCondition,
+                       false,
                        stubUser,
                        stubUserSettings,
                        generateToken,
@@ -42,6 +39,7 @@
                        action,
                        {
                                type: 'BOOT',
+                               isEnabled: false,
                                sessionToken: '0123456789',
                                pageToken: '9876543210',
                                page: {
@@ -50,7 +48,6 @@
                                        id: 2
                                },
                                user: {
-                                       isInCondition: false,
                                        isAnon: true,
                                        editCount: 3,
                                        previewCount: 22
diff --git a/tests/qunit/ext.popups/isEnabled.test.js 
b/tests/qunit/ext.popups/isEnabled.test.js
index 11b8cf7..b0306be 100644
--- a/tests/qunit/ext.popups/isEnabled.test.js
+++ b/tests/qunit/ext.popups/isEnabled.test.js
@@ -15,29 +15,26 @@
 
        QUnit.test( 'it should return true when the user has enabled it via UI 
interactions', function ( assert ) {
                var user = mw.popups.tests.stubs.createStubUser( /* isAnon = */ 
false ),
-                       userSettings = createStubUserSettings( /* hasIsEnabled 
= */ true ),
-                       isEnabled = mw.popups.isEnabled( user, userSettings );
+                       userSettings = createStubUserSettings( /* hasIsEnabled 
= */ true );
 
-               assert.ok( isEnabled() );
+               assert.ok( mw.popups.isEnabled( user, userSettings ) );
        } );
 
        QUnit.test( 'it should return false if the user is an anon', function ( 
assert ) {
                var user = mw.popups.tests.stubs.createStubUser( /* isAnon = */ 
true ),
-                       userSettings = createStubUserSettings( /* hasIsEnabled 
= */ true ),
-                       isEnabled = mw.popups.isEnabled( user, userSettings );
+                       userSettings = createStubUserSettings( /* hasIsEnabled 
= */ true );
 
                assert.notOk(
-                       isEnabled(),
+                       mw.popups.isEnabled( user, userSettings ),
                        'It should return false even if the user has enabled it 
via UI interactions.'
                );
        } );
 
        QUnit.test( 'it should return true if the user hasn\'t disabled it via 
UI interactions', function ( assert ) {
                var user = mw.popups.tests.stubs.createStubUser( /* isAnon = */ 
false ),
-                       userSettings = createStubUserSettings( /* hasIsEnabled 
= */ false ),
-                       isEnabled = mw.popups.isEnabled( user, userSettings );
+                       userSettings = createStubUserSettings( /* hasIsEnabled 
= */ false );
 
-               assert.ok( isEnabled() );
+               assert.ok( mw.popups.isEnabled( user, userSettings ) );
        } );
 
 }( mediaWiki ) );
diff --git a/tests/qunit/ext.popups/reducers/eventLogging.test.js 
b/tests/qunit/ext.popups/reducers/eventLogging.test.js
index 8ea8ad1..f8b726c 100644
--- a/tests/qunit/ext.popups/reducers/eventLogging.test.js
+++ b/tests/qunit/ext.popups/reducers/eventLogging.test.js
@@ -25,6 +25,7 @@
        QUnit.test( 'BOOT', function ( assert ) {
                var action = {
                                type: 'BOOT',
+                               isEnabled: true,
                                sessionToken: '0123456789',
                                pageToken: '9876543210',
                                page: {
@@ -33,7 +34,6 @@
                                        id: 2
                                },
                                user: {
-                                       isInCondition: true,
                                        isAnon: false,
                                        editCount: 11,
                                        previewCount: 22
@@ -54,7 +54,7 @@
                                        namespaceIdSource: 
action.page.namespaceID,
                                        pageIdSource: action.page.id,
                                        isAnon: action.user.isAnon,
-                                       popupEnabled: action.user.isInCondition,
+                                       popupEnabled: action.isEnabled,
                                        pageToken: action.pageToken,
                                        sessionToken: action.sessionToken,
                                        editCountBucket: 
expectedEditCountBucket,
diff --git a/tests/qunit/ext.popups/reducers/preview.test.js 
b/tests/qunit/ext.popups/reducers/preview.test.js
index 0b3f7e7..4b7794a 100644
--- a/tests/qunit/ext.popups/reducers/preview.test.js
+++ b/tests/qunit/ext.popups/reducers/preview.test.js
@@ -26,9 +26,7 @@
        QUnit.test( 'BOOT', function ( assert ) {
                var action = {
                        type: 'BOOT',
-                       user: {
-                               isInCondition: true
-                       }
+                       isEnabled: true
                };
 
                assert.expect( 1 );

-- 
To view, visit https://gerrit.wikimedia.org/r/327196
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I3fa2098269a32912eda99ceb8f13887688a14c15
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Popups
Gerrit-Branch: mpga
Gerrit-Owner: Phuedx <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: Jhobs <[email protected]>
Gerrit-Reviewer: Phuedx <[email protected]>
Gerrit-Reviewer: Pmiazga <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to