Skip to content
This repository was archived by the owner on Dec 14, 2023. It is now read-only.

Commit 6087a99

Browse files
committed
fix anniversary logic/test that fails in December (bah humbug!)
1 parent bcdfd1b commit 6087a99

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/dashboard/cd-dashboard-dojo-anniversary.vue

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,14 @@
3030
},
3131
hasAnniversary(dojo) {
3232
const now = moment();
33-
const referenceDate = moment(dojo.created);
34-
referenceDate.year(now.year());
35-
const timeToAnniversary = now.diff(referenceDate, 'months');
33+
const nextAnniversary = moment(dojo.created);
34+
nextAnniversary.year(now.year());
35+
if (now.isAfter(nextAnniversary)) {
36+
nextAnniversary.add(1, 'year');
37+
}
38+
const timeToAnniversary = nextAnniversary.diff(now, 'months');
3639
// Note: this won't be exact due to the user's tz and the creation date being in IST
37-
return timeToAnniversary >= -2 && timeToAnniversary <= 0 && now <= referenceDate;
40+
return timeToAnniversary <= 2;
3841
},
3942
championOfDojos(dojos, dojoAdmins) {
4043
return dojoAdmins.reduce((acc, membership) => {

test/unit/specs/dashboard/cd-dashboard-dojo-anniversary.spec.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ describe('Dashboard dojo anniversary component', () => {
3939
created.subtract(1, 'days');
4040
expect(vm.hasAnniversary({ created })).to.be.false;
4141
});
42+
it('should return true if anniversary is within 2 months and next year', () => {
43+
clock = sinon.useFakeTimers(new Date(2018, 11, 12, 0, 0, 0, 0));
44+
const created = moment();
45+
created.add(1, 'months');
46+
expect(vm.hasAnniversary({ created })).to.be.true;
47+
});
4248
});
4349
describe('isOld', () => {
4450
it('should return true if the dojo is at least 10 month old', () => {

0 commit comments

Comments
 (0)