[MediaWiki-commits] [Gerrit] mediawiki...mobileapps[master]: Automatically end announcements after configured endTime

2018-01-04 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/398254 )

Change subject: Automatically end announcements after configured endTime
..


Automatically end announcements after configured endTime

No need to still serve any announcements after they ended.

Probably should look into making the spec.yaml entry optional.

Change-Id: Id27816938108f82f09f522702dede79d630b630a
---
M lib/feed/announcements.js
M spec.yaml
M test/lib/feed/announcements.js
3 files changed, 50 insertions(+), 18 deletions(-)

Approvals:
  jenkins-bot: Verified
  Mholloway: Looks good to me, approved



diff --git a/lib/feed/announcements.js b/lib/feed/announcements.js
index 08fb116..5e3a956 100644
--- a/lib/feed/announcements.js
+++ b/lib/feed/announcements.js
@@ -82,10 +82,23 @@
 return domain === 'en.wikipedia.beta.wmflabs.org';
 }
 
+function hasEnded(now) {
+const endDate = Date.parse(config.endTime);
+if (isNaN(endDate)) {
+return true; // end right away if config.endTime is invalid
+}
+return now > endDate;
+}
+
+function isActive(domain, now) {
+return (isActiveWiki(domain) || isEnBetaClusterDomain(domain))
+&& !hasEnded(now);
+}
+
 function getAnnouncements(domain) {
 return {
 // eslint-disable-next-line multiline-ternary
-announce: isActiveWiki(domain) || isEnBetaClusterDomain(domain)
+announce: isActive(domain, new Date())
 ? getActiveAnnouncements() : []
 };
 }
@@ -97,6 +110,7 @@
 buildId,
 buildAndroidAnnouncement,
 buildIosAnnouncement,
-getActiveAnnouncements
+getActiveAnnouncements,
+hasEnded
 }
 };
diff --git a/spec.yaml b/spec.yaml
index 2bd8dd5..95d2a48 100644
--- a/spec.yaml
+++ b/spec.yaml
@@ -85,18 +85,18 @@
 headers:
   content-type: application/json
 body:
-  announce:
-- id: /.+/
-  type: /.+/
-  start_time: /.+/
-  end_time: /.+/
-  platforms: [ /.+/ ]
-  text: /.+/
-  action:
-title: /.+/
-url: /.+/
-  caption_HTML: /.+/
-  countries: [ /.+/ ]
+  announce: []
+#- id: /.+/
+#  type: /.+/
+#  start_time: /.+/
+#  end_time: /.+/
+#  platforms: [ /.+/ ]
+#  text: /.+/
+#  action:
+#title: /.+/
+#url: /.+/
+#  caption_HTML: /.+/
+#  countries: [ /.+/ ]
 
   # from routes/compilations.js
   /{domain}/v1/compilations:
diff --git a/test/lib/feed/announcements.js b/test/lib/feed/announcements.js
index 5531521..b133c8a 100644
--- a/test/lib/feed/announcements.js
+++ b/test/lib/feed/announcements.js
@@ -16,10 +16,11 @@
 
 it('should return some announcements for active wiki', () => {
 const res = mut.getAnnouncements(activeAnnouncementDomain);
-assert.ok(res.announce.length === 12);
-assert.equal(res.announce[0].id, 'EN1217FUNDRAISINGANDROIDUS');
-assert.equal(res.announce[1].id, 'EN1217FUNDRAISINGANDROIDGB');
-assert.equal(res.announce[2].id, 'EN1217FUNDRAISINGANDROIDAU');
+assert.ok(res.announce.length === 0);
+// assert.ok(res.announce.length === 12);
+// assert.equal(res.announce[0].id, 'EN1217FUNDRAISINGANDROIDUS');
+// assert.equal(res.announce[1].id, 'EN1217FUNDRAISINGANDROIDGB');
+// assert.equal(res.announce[2].id, 'EN1217FUNDRAISINGANDROIDAU');
 });
 
 it('should return no images', () => {
@@ -90,6 +91,23 @@
 assert.deepEqual(id, id.toUpperCase());
 });
 
+describe('.hasEnded', () => {
+it('invalid endTime', () => {
+config.endTime = 'DISABLED';
+assert.ok(mut.testing.hasEnded());
+});
+
+it('endTime has passed', () => {
+config.endTime = '2017-12-20T23:59:00Z';
+assert.ok(mut.testing.hasEnded(new Date(Date.UTC(2017, 11, 21;
+});
+
+it('endTime has not passed yet', () => {
+config.endTime = '2017-12-20T23:59:00Z';
+assert.ok(!mut.testing.hasEnded(new Date(Date.UTC(2017, 11, 20;
+});
+});
+
 describe('announcements-unit-config', () => {
 const THIS_YEAR = new Date().getUTCFullYear();
 

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Id27816938108f82f09f522702dede79d630b630a
Gerrit-PatchSet: 8
Gerrit-Project: mediawiki/services/mobileapps
Gerrit-Branch: master
Gerrit-Owner: BearND 
Gerrit-Reviewer: BearND 
Gerrit-Reviewer: Fjalapeno 

[MediaWiki-commits] [Gerrit] mediawiki...mobileapps[master]: Automatically end announcements after configured endTime

2017-12-14 Thread BearND (Code Review)
BearND has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/398254 )

Change subject: Automatically end announcements after configured endTime
..

Automatically end announcements after configured endTime

No need to still serve any announcements after they ended.

Change-Id: Id27816938108f82f09f522702dede79d630b630a
---
M lib/feed/announcements.js
M test/lib/feed/announcements.js
2 files changed, 33 insertions(+), 2 deletions(-)


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

diff --git a/lib/feed/announcements.js b/lib/feed/announcements.js
index 08fb116..5e3a956 100644
--- a/lib/feed/announcements.js
+++ b/lib/feed/announcements.js
@@ -82,10 +82,23 @@
 return domain === 'en.wikipedia.beta.wmflabs.org';
 }
 
+function hasEnded(now) {
+const endDate = Date.parse(config.endTime);
+if (isNaN(endDate)) {
+return true; // end right away if config.endTime is invalid
+}
+return now > endDate;
+}
+
+function isActive(domain, now) {
+return (isActiveWiki(domain) || isEnBetaClusterDomain(domain))
+&& !hasEnded(now);
+}
+
 function getAnnouncements(domain) {
 return {
 // eslint-disable-next-line multiline-ternary
-announce: isActiveWiki(domain) || isEnBetaClusterDomain(domain)
+announce: isActive(domain, new Date())
 ? getActiveAnnouncements() : []
 };
 }
@@ -97,6 +110,7 @@
 buildId,
 buildAndroidAnnouncement,
 buildIosAnnouncement,
-getActiveAnnouncements
+getActiveAnnouncements,
+hasEnded
 }
 };
diff --git a/test/lib/feed/announcements.js b/test/lib/feed/announcements.js
index f721f9f..0b6e243 100644
--- a/test/lib/feed/announcements.js
+++ b/test/lib/feed/announcements.js
@@ -90,6 +90,23 @@
 assert.deepEqual(id, id.toUpperCase());
 });
 
+describe('.hasEnded', () => {
+it('invalid endTime', () => {
+config.endTime = 'DISABLED';
+assert.ok(mut.testing.hasEnded());
+});
+
+it('endTime has passed', () => {
+config.endTime = '2017-12-20T23:59:00Z';
+assert.ok(mut.testing.hasEnded(new Date(Date.UTC(2017, 11, 21;
+});
+
+it('endTime has not passed yet', () => {
+config.endTime = '2017-12-20T23:59:00Z';
+assert.ok(!mut.testing.hasEnded(new Date(Date.UTC(2017, 11, 20;
+});
+});
+
 describe('announcements-unit-config', () => {
 const THIS_YEAR = new Date().getUTCFullYear();
 

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id27816938108f82f09f522702dede79d630b630a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/mobileapps
Gerrit-Branch: master
Gerrit-Owner: BearND 

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