add handling and tests for new timetravelers schedule

This commit is contained in:
Phillip Thelen
2024-04-30 13:13:18 +02:00
parent 9dabe79d5e
commit 1ced4a18d6
2 changed files with 36 additions and 4 deletions

View File

@@ -10,7 +10,7 @@ function validateMatcher (matcher, checkedDate) {
expect(matcher.end).to.be.greaterThan(checkedDate);
}
describe('Content Schedule', () => {
describe.only('Content Schedule', () => {
it('assembles scheduled items on january 15th', () => {
const date = new Date('2024-01-15');
const matchers = getAllScheduleMatchingGroups(date);
@@ -120,4 +120,32 @@ describe('Content Schedule', () => {
expect(matcher.match('backgroundkey082021')).to.be.true;
});
});
describe('timeTravelers matcher', () => {
it('allows sets matching the month', () => {
const date = new Date('2024-07-08');
const matcher = getAllScheduleMatchingGroups(date).timeTravelers;
expect(matcher.match('202307')).to.be.true;
expect(matcher.match('202207')).to.be.true;
});
it('disallows sets not matching the month', () => {
const date = new Date('2024-07-08');
const matcher = getAllScheduleMatchingGroups(date).timeTravelers;
expect(matcher.match('202306')).to.be.false;
expect(matcher.match('202402')).to.be.false;
});
it('disallows sets from current month', () => {
const date = new Date('2024-07-08');
const matcher = getAllScheduleMatchingGroups(date).timeTravelers;
expect(matcher.match('202407')).to.be.false;
});
it('disallows sets from the future', () => {
const date = new Date('2024-07-08');
const matcher = getAllScheduleMatchingGroups(date).backgrounds;
expect(matcher.match('202507')).to.be.false;
});
});
});

View File

@@ -24,9 +24,13 @@ function backgroundMatcher (month1, month2, oddYear) {
}
function timeTravelersMatcher (month1, month2) {
return function call (item) {
const itemMonth = parseInt(item.substring(4, 6), 10);
return itemMonth === month1 || itemMonth === month2;
return function call (item, date) {
const month = parseInt(item.substring(4, 6), 10);
const year = parseInt(item.substring(0, 4), 10);
if (date.getFullYear() === year && (date.getMonth() + 1) >= month) {
return false;
}
return month === month1 || month === month2;
};
}