jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/402083 )
Change subject: News: don't include empty stories
..
News: don't include empty stories
Bug: T184198
Change-Id: Ia2e7c4cc61cbb99e2fa0f5af355ba5cf837f0401
---
M lib/feed/announcements.js
M lib/feed/news.js
M test/features/news/news.js
M test/lib/feed/announcements.js
4 files changed, 20 insertions(+), 10 deletions(-)
Approvals:
jenkins-bot: Verified
Mholloway: Looks good to me, approved
diff --git a/lib/feed/announcements.js b/lib/feed/announcements.js
index 5e3a956..98f7dcc 100644
--- a/lib/feed/announcements.js
+++ b/lib/feed/announcements.js
@@ -1,6 +1,7 @@
'use strict';
const config = require('../../etc/feed/announcements');
+const HTTPError = require('../util').HTTPError;
/**
* Builds the body text for iOS. Note: HTML is not supported by iOS clients!
@@ -85,7 +86,12 @@
function hasEnded(now) {
const endDate = Date.parse(config.endTime);
if (isNaN(endDate)) {
-return true; // end right away if config.endTime is invalid
+throw new HTTPError({
+status: 500,
+type: 'config_error',
+title: 'invalid end date in announcements config',
+detail: config.endTime
+});
}
return now > endDate;
}
diff --git a/lib/feed/news.js b/lib/feed/news.js
index eea1715..d81d261 100644
--- a/lib/feed/news.js
+++ b/lib/feed/news.js
@@ -25,7 +25,11 @@
});
story.story = storyHtml.innerHTML;
-return story;
+if (story.story.length > 0 && story.links.length > 0) {
+return story;
+} else {
+return undefined;
+}
}
function promise(app, req) {
@@ -55,8 +59,10 @@
};
Array.prototype.forEach.call(headlines, (storyHtml) => {
-result.payload.push(constructStory(app.restbase_tpl,
req.params.domain, lang,
-storyHtml));
+const story = constructStory(app.restbase_tpl, req.params.domain,
lang, storyHtml);
+if (story) {
+result.payload.push(story);
+}
});
return result;
diff --git a/test/features/news/news.js b/test/features/news/news.js
index d554811..36f9997 100644
--- a/test/features/news/news.js
+++ b/test/features/news/news.js
@@ -50,10 +50,6 @@
before(() => { return server.start(); });
for (const lang in NEWS_TEMPLATES) {
-if (lang === 'fr') {
-continue; // TODO: unskip testing french news today
-}
-
if ({}.hasOwnProperty.call(NEWS_TEMPLATES, lang)) {
it(`${lang}: should respond with expected headers, incl. CORS and
CSP headers`, () => {
return
checkHeaders(`${server.config.uri}${lang}.wikipedia.org/v1/page/news`,
diff --git a/test/lib/feed/announcements.js b/test/lib/feed/announcements.js
index b133c8a..d6934a1 100644
--- a/test/lib/feed/announcements.js
+++ b/test/lib/feed/announcements.js
@@ -93,8 +93,10 @@
describe('.hasEnded', () => {
it('invalid endTime', () => {
-config.endTime = 'DISABLED';
-assert.ok(mut.testing.hasEnded());
+config.endTime = 'INVALID';
+assert.throws(() => {
+mut.testing.hasEnded(Date(Date.UTC(2030, 5, 1)));
+}, /config_error/);
});
it('endTime has passed', () => {
--
To view, visit https://gerrit.wikimedia.org/r/402083
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia2e7c4cc61cbb99e2fa0f5af355ba5cf837f0401
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/services/mobileapps
Gerrit-Branch: master
Gerrit-Owner: BearND
Gerrit-Reviewer: Fjalapeno
Gerrit-Reviewer: Jdlrobson
Gerrit-Reviewer: Mholloway
Gerrit-Reviewer: Mhurd
Gerrit-Reviewer: Ppchelko
Gerrit-Reviewer: jenkins-bot <>
___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits