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