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 <[email protected]>
Gerrit-Reviewer: Fjalapeno <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: Mholloway <[email protected]>
Gerrit-Reviewer: Mhurd <[email protected]>
Gerrit-Reviewer: Ppchelko <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits