Mholloway has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/403553 )

Change subject: Hygiene: Split getSummaryType into standalone method and add 
unit tests
......................................................................

Hygiene: Split getSummaryType into standalone method and add unit tests

Change-Id: Ibd73ce5363719769d921957d8358c68fecf493e6
---
M lib/mobile-util.js
M test/lib/mobile-util/mobile-util-test.js
2 files changed, 23 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/mobileapps 
refs/changes/53/403553/1

diff --git a/lib/mobile-util.js b/lib/mobile-util.js
index 6856795..52ba34b 100644
--- a/lib/mobile-util.js
+++ b/lib/mobile-util.js
@@ -159,6 +159,23 @@
     };
 };
 
+/**
+ * Get the page summary type.
+ * @param {!Object} meta page metadata from MW API
+ * return {!String} the summary type (one of 'standard', 'disambiguation', or 
'mainpage')
+ */
+mUtil.getSummaryType = function(meta) {
+    const isDisambiguationPage = meta.pageprops
+      && {}.hasOwnProperty.call(meta.pageprops, 'disambiguation');
+    if (meta.mainpage) {
+        return 'mainpage';
+    }
+    if (isDisambiguationPage) {
+        return 'disambiguation';
+    }
+    return 'standard';
+};
+
 /*
  * Build a page summary
  * @param {!String} domain the request domain
@@ -169,22 +186,9 @@
 mUtil.buildSummary = function(domain, title, pageData) {
     const page = pageData.page;
     const meta = pageData.meta;
-    const pageProps = meta && meta.pageprops;
-    const isDisambiguationPage = pageProps && 
{}.hasOwnProperty.call(pageProps, 'disambiguation');
-    const isMainPage = meta.mainpage;
     const isContentModelWikitext = meta.contentmodel === 'wikitext';
     const isWhiteListedNamespace = 
mUtil.SUMMARY_NS_WHITELIST.includes(meta.ns);
     const isRedirect = meta.redirect;
-
-    function getType() {
-        if (isMainPage) {
-            return 'mainpage';
-        }
-        if (isDisambiguationPage) {
-            return 'disambiguation';
-        }
-        return 'standard';
-    }
 
     if (!isContentModelWikitext) {
         return { code: 204 };
@@ -204,7 +208,7 @@
 
     return Object.assign({
         code: 200,
-        type : getType(),
+        type : mUtil.getSummaryType(meta),
         title: meta.normalizedtitle,
         displaytitle: meta.displaytitle,
         namespace: { id: meta.ns, text: meta.nsText },
diff --git a/test/lib/mobile-util/mobile-util-test.js 
b/test/lib/mobile-util/mobile-util-test.js
index a063737..bbc000b 100644
--- a/test/lib/mobile-util/mobile-util-test.js
+++ b/test/lib/mobile-util/mobile-util-test.js
@@ -30,4 +30,9 @@
         assert.deepEqual(mUtil.extractDbTitleFromAnchor(link), 'My_db_title');
     });
 
+    it('getSummaryType identifies main and disambig pages, defaults to 
\'standard\'', () => {
+        assert.deepEqual(mUtil.getSummaryType({"mainpage":true}), 'mainpage');
+        
assert.deepEqual(mUtil.getSummaryType({"pageprops":{"disambiguation":""}}), 
'disambiguation');
+        assert.deepEqual(mUtil.getSummaryType({}), 'standard');
+    });
 });

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibd73ce5363719769d921957d8358c68fecf493e6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/mobileapps
Gerrit-Branch: master
Gerrit-Owner: Mholloway <mhollo...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to