mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 22:57:21 +01:00
Reverted should do file (#8556)
This commit is contained in:
committed by
Sabe Jones
parent
d0d4b47c47
commit
bde41699ee
@@ -1,310 +1,310 @@
|
||||
import { shouldDo, DAY_MAPPING } from '../../website/common/script/cron';
|
||||
import moment from 'moment';
|
||||
import 'moment-recur';
|
||||
// import { shouldDo, DAY_MAPPING } from '../../website/common/script/cron';
|
||||
// import moment from 'moment';
|
||||
// import 'moment-recur';
|
||||
|
||||
describe('shouldDo', () => {
|
||||
let day, dailyTask;
|
||||
let options = {};
|
||||
// describe('shouldDo', () => {
|
||||
// let day, dailyTask;
|
||||
// let options = {};
|
||||
|
||||
beforeEach(() => {
|
||||
day = new Date();
|
||||
dailyTask = {
|
||||
completed: 'false',
|
||||
everyX: 1,
|
||||
frequency: 'weekly',
|
||||
type: 'daily',
|
||||
repeat: {
|
||||
su: true,
|
||||
s: true,
|
||||
f: true,
|
||||
th: true,
|
||||
w: true,
|
||||
t: true,
|
||||
m: true,
|
||||
},
|
||||
startDate: new Date(),
|
||||
};
|
||||
});
|
||||
// beforeEach(() => {
|
||||
// day = new Date();
|
||||
// dailyTask = {
|
||||
// completed: 'false',
|
||||
// everyX: 1,
|
||||
// frequency: 'weekly',
|
||||
// type: 'daily',
|
||||
// repeat: {
|
||||
// su: true,
|
||||
// s: true,
|
||||
// f: true,
|
||||
// th: true,
|
||||
// w: true,
|
||||
// t: true,
|
||||
// m: true,
|
||||
// },
|
||||
// startDate: new Date(),
|
||||
// };
|
||||
// });
|
||||
|
||||
it('leaves Daily inactive before start date', () => {
|
||||
dailyTask.startDate = moment().add(1, 'days').toDate();
|
||||
// it('leaves Daily inactive before start date', () => {
|
||||
// dailyTask.startDate = moment().add(1, 'days').toDate();
|
||||
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
});
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
// });
|
||||
|
||||
context('Every X Days', () => {
|
||||
it('leaves Daily inactive in between X Day intervals', () => {
|
||||
dailyTask.startDate = moment().subtract(1, 'days').toDate();
|
||||
dailyTask.frequency = 'daily';
|
||||
dailyTask.everyX = 2;
|
||||
// context('Every X Days', () => {
|
||||
// it('leaves Daily inactive in between X Day intervals', () => {
|
||||
// dailyTask.startDate = moment().subtract(1, 'days').toDate();
|
||||
// dailyTask.frequency = 'daily';
|
||||
// dailyTask.everyX = 2;
|
||||
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
});
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
// });
|
||||
|
||||
it('activates Daily on multiples of X Days', () => {
|
||||
dailyTask.startDate = moment().subtract(7, 'days').toDate();
|
||||
dailyTask.frequency = 'daily';
|
||||
dailyTask.everyX = 7;
|
||||
// it('activates Daily on multiples of X Days', () => {
|
||||
// dailyTask.startDate = moment().subtract(7, 'days').toDate();
|
||||
// dailyTask.frequency = 'daily';
|
||||
// dailyTask.everyX = 7;
|
||||
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
});
|
||||
});
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
// });
|
||||
// });
|
||||
|
||||
context('Certain Days of the Week', () => {
|
||||
it('leaves Daily inactive if day of the week does not match', () => {
|
||||
dailyTask.repeat = {
|
||||
su: false,
|
||||
s: false,
|
||||
f: false,
|
||||
th: false,
|
||||
w: false,
|
||||
t: false,
|
||||
m: false,
|
||||
};
|
||||
// context('Certain Days of the Week', () => {
|
||||
// it('leaves Daily inactive if day of the week does not match', () => {
|
||||
// dailyTask.repeat = {
|
||||
// su: false,
|
||||
// s: false,
|
||||
// f: false,
|
||||
// th: false,
|
||||
// w: false,
|
||||
// t: false,
|
||||
// m: false,
|
||||
// };
|
||||
|
||||
for (let weekday of [0, 1, 2, 3, 4, 5, 6]) {
|
||||
day = moment().day(weekday).toDate();
|
||||
// for (let weekday of [0, 1, 2, 3, 4, 5, 6]) {
|
||||
// day = moment().day(weekday).toDate();
|
||||
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
}
|
||||
});
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
// }
|
||||
// });
|
||||
|
||||
it('leaves Daily inactive if day of the week does not match and active on the day it matches', () => {
|
||||
dailyTask.repeat = {
|
||||
su: false,
|
||||
s: false,
|
||||
f: false,
|
||||
th: true,
|
||||
w: false,
|
||||
t: false,
|
||||
m: false,
|
||||
};
|
||||
// it('leaves Daily inactive if day of the week does not match and active on the day it matches', () => {
|
||||
// dailyTask.repeat = {
|
||||
// su: false,
|
||||
// s: false,
|
||||
// f: false,
|
||||
// th: true,
|
||||
// w: false,
|
||||
// t: false,
|
||||
// m: false,
|
||||
// };
|
||||
|
||||
for (let weekday of [0, 1, 2, 3, 4, 5, 6]) {
|
||||
day = moment().add(1, 'weeks').day(weekday).toDate();
|
||||
// for (let weekday of [0, 1, 2, 3, 4, 5, 6]) {
|
||||
// day = moment().add(1, 'weeks').day(weekday).toDate();
|
||||
|
||||
if (weekday === 4) {
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
} else {
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
// if (weekday === 4) {
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
// } else {
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
|
||||
it('activates Daily on matching days of the week', () => {
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
});
|
||||
});
|
||||
// it('activates Daily on matching days of the week', () => {
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
// });
|
||||
// });
|
||||
|
||||
context('Every X Weeks', () => {
|
||||
it('leaves daily inactive if it has not been the specified number of weeks', () => {
|
||||
dailyTask.everyX = 3;
|
||||
let tomorrow = moment().add(1, 'day').toDate();
|
||||
// context('Every X Weeks', () => {
|
||||
// it('leaves daily inactive if it has not been the specified number of weeks', () => {
|
||||
// dailyTask.everyX = 3;
|
||||
// let tomorrow = moment().add(1, 'day').toDate();
|
||||
|
||||
expect(shouldDo(tomorrow, dailyTask, options)).to.equal(false);
|
||||
});
|
||||
// expect(shouldDo(tomorrow, dailyTask, options)).to.equal(false);
|
||||
// });
|
||||
|
||||
it('leaves daily inactive if on every (x) week on weekday it is incorrect weekday', () => {
|
||||
dailyTask.repeat = {
|
||||
su: false,
|
||||
s: false,
|
||||
f: false,
|
||||
th: false,
|
||||
w: false,
|
||||
t: false,
|
||||
m: false,
|
||||
};
|
||||
// it('leaves daily inactive if on every (x) week on weekday it is incorrect weekday', () => {
|
||||
// dailyTask.repeat = {
|
||||
// su: false,
|
||||
// s: false,
|
||||
// f: false,
|
||||
// th: false,
|
||||
// w: false,
|
||||
// t: false,
|
||||
// m: false,
|
||||
// };
|
||||
|
||||
day = moment();
|
||||
dailyTask.repeat[DAY_MAPPING[day.day()]] = true;
|
||||
dailyTask.everyX = 3;
|
||||
let threeWeeksFromTodayPlusOne = day.add(1, 'day').add(3, 'weeks').toDate();
|
||||
// day = moment();
|
||||
// dailyTask.repeat[DAY_MAPPING[day.day()]] = true;
|
||||
// dailyTask.everyX = 3;
|
||||
// let threeWeeksFromTodayPlusOne = day.add(1, 'day').add(3, 'weeks').toDate();
|
||||
|
||||
expect(shouldDo(threeWeeksFromTodayPlusOne, dailyTask, options)).to.equal(false);
|
||||
});
|
||||
// expect(shouldDo(threeWeeksFromTodayPlusOne, dailyTask, options)).to.equal(false);
|
||||
// });
|
||||
|
||||
it('activates Daily on matching week', () => {
|
||||
dailyTask.everyX = 3;
|
||||
let threeWeeksFromToday = moment().add(3, 'weeks').toDate();
|
||||
// it('activates Daily on matching week', () => {
|
||||
// dailyTask.everyX = 3;
|
||||
// let threeWeeksFromToday = moment().add(3, 'weeks').toDate();
|
||||
|
||||
expect(shouldDo(threeWeeksFromToday, dailyTask, options)).to.equal(true);
|
||||
});
|
||||
// expect(shouldDo(threeWeeksFromToday, dailyTask, options)).to.equal(true);
|
||||
// });
|
||||
|
||||
it('activates Daily on every (x) week on weekday', () => {
|
||||
dailyTask.repeat = {
|
||||
su: false,
|
||||
s: false,
|
||||
f: false,
|
||||
th: false,
|
||||
w: false,
|
||||
t: false,
|
||||
m: false,
|
||||
};
|
||||
// it('activates Daily on every (x) week on weekday', () => {
|
||||
// dailyTask.repeat = {
|
||||
// su: false,
|
||||
// s: false,
|
||||
// f: false,
|
||||
// th: false,
|
||||
// w: false,
|
||||
// t: false,
|
||||
// m: false,
|
||||
// };
|
||||
|
||||
day = moment();
|
||||
dailyTask.repeat[DAY_MAPPING[day.day()]] = true;
|
||||
dailyTask.everyX = 3;
|
||||
let threeWeeksFromToday = day.add(6, 'weeks').day(day.day()).toDate();
|
||||
// day = moment();
|
||||
// dailyTask.repeat[DAY_MAPPING[day.day()]] = true;
|
||||
// dailyTask.everyX = 3;
|
||||
// let threeWeeksFromToday = day.add(6, 'weeks').day(day.day()).toDate();
|
||||
|
||||
expect(shouldDo(threeWeeksFromToday, dailyTask, options)).to.equal(true);
|
||||
});
|
||||
});
|
||||
// expect(shouldDo(threeWeeksFromToday, dailyTask, options)).to.equal(true);
|
||||
// });
|
||||
// });
|
||||
|
||||
context('Monthly - Every X Months on a specified date', () => {
|
||||
it('leaves daily inactive if not day of the month', () => {
|
||||
dailyTask.everyX = 1;
|
||||
dailyTask.frequency = 'monthly';
|
||||
dailyTask.daysOfMonth = [15];
|
||||
let tomorrow = moment().add(1, 'day').toDate();// @TODO: make sure this is not the 15
|
||||
// context('Monthly - Every X Months on a specified date', () => {
|
||||
// it('leaves daily inactive if not day of the month', () => {
|
||||
// dailyTask.everyX = 1;
|
||||
// dailyTask.frequency = 'monthly';
|
||||
// dailyTask.daysOfMonth = [15];
|
||||
// let tomorrow = moment().add(1, 'day').toDate();// @TODO: make sure this is not the 15
|
||||
|
||||
expect(shouldDo(tomorrow, dailyTask, options)).to.equal(false);
|
||||
});
|
||||
// expect(shouldDo(tomorrow, dailyTask, options)).to.equal(false);
|
||||
// });
|
||||
|
||||
it('activates Daily on matching day of month', () => {
|
||||
day = moment();
|
||||
dailyTask.everyX = 1;
|
||||
dailyTask.frequency = 'monthly';
|
||||
dailyTask.daysOfMonth = [day.date()];
|
||||
day = day.add(1, 'months').date(day.date()).toDate();
|
||||
// it('activates Daily on matching day of month', () => {
|
||||
// day = moment();
|
||||
// dailyTask.everyX = 1;
|
||||
// dailyTask.frequency = 'monthly';
|
||||
// dailyTask.daysOfMonth = [day.date()];
|
||||
// day = day.add(1, 'months').date(day.date()).toDate();
|
||||
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
});
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
// });
|
||||
|
||||
it('leaves daily inactive if not on date of the x month', () => {
|
||||
dailyTask.everyX = 2;
|
||||
dailyTask.frequency = 'monthly';
|
||||
dailyTask.daysOfMonth = [15];
|
||||
let tomorrow = moment().add(2, 'months').add(1, 'day').toDate();
|
||||
// it('leaves daily inactive if not on date of the x month', () => {
|
||||
// dailyTask.everyX = 2;
|
||||
// dailyTask.frequency = 'monthly';
|
||||
// dailyTask.daysOfMonth = [15];
|
||||
// let tomorrow = moment().add(2, 'months').add(1, 'day').toDate();
|
||||
|
||||
expect(shouldDo(tomorrow, dailyTask, options)).to.equal(false);
|
||||
});
|
||||
// expect(shouldDo(tomorrow, dailyTask, options)).to.equal(false);
|
||||
// });
|
||||
|
||||
it('activates Daily if on date of the x month', () => {
|
||||
dailyTask.everyX = 2;
|
||||
dailyTask.frequency = 'monthly';
|
||||
dailyTask.daysOfMonth = [15];
|
||||
day = moment().add(2, 'months').date(15).toDate();
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
});
|
||||
});
|
||||
// it('activates Daily if on date of the x month', () => {
|
||||
// dailyTask.everyX = 2;
|
||||
// dailyTask.frequency = 'monthly';
|
||||
// dailyTask.daysOfMonth = [15];
|
||||
// day = moment().add(2, 'months').date(15).toDate();
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
// });
|
||||
// });
|
||||
|
||||
context('Monthly - Certain days of the nth Week', () => {
|
||||
it('leaves daily inactive if not the correct week of the month on the day of the start date', () => {
|
||||
dailyTask.repeat = {
|
||||
su: false,
|
||||
s: false,
|
||||
f: false,
|
||||
th: false,
|
||||
w: false,
|
||||
t: false,
|
||||
m: false,
|
||||
};
|
||||
// context('Monthly - Certain days of the nth Week', () => {
|
||||
// it('leaves daily inactive if not the correct week of the month on the day of the start date', () => {
|
||||
// dailyTask.repeat = {
|
||||
// su: false,
|
||||
// s: false,
|
||||
// f: false,
|
||||
// th: false,
|
||||
// w: false,
|
||||
// t: false,
|
||||
// m: false,
|
||||
// };
|
||||
|
||||
let today = moment('01/27/2017');
|
||||
let week = today.monthWeek();
|
||||
let dayOfWeek = today.day();
|
||||
dailyTask.startDate = today.toDate();
|
||||
dailyTask.weeksOfMonth = [week];
|
||||
dailyTask.repeat[DAY_MAPPING[dayOfWeek]] = true;
|
||||
dailyTask.everyX = 1;
|
||||
dailyTask.frequency = 'monthly';
|
||||
day = moment('02/23/2017');
|
||||
// let today = moment('01/27/2017');
|
||||
// let week = today.monthWeek();
|
||||
// let dayOfWeek = today.day();
|
||||
// dailyTask.startDate = today.toDate();
|
||||
// dailyTask.weeksOfMonth = [week];
|
||||
// dailyTask.repeat[DAY_MAPPING[dayOfWeek]] = true;
|
||||
// dailyTask.everyX = 1;
|
||||
// dailyTask.frequency = 'monthly';
|
||||
// day = moment('02/23/2017');
|
||||
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
});
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
// });
|
||||
|
||||
it('activates Daily if correct week of the month on the day of the start date', () => {
|
||||
dailyTask.repeat = {
|
||||
su: false,
|
||||
s: false,
|
||||
f: false,
|
||||
th: false,
|
||||
w: false,
|
||||
t: false,
|
||||
m: false,
|
||||
};
|
||||
// it('activates Daily if correct week of the month on the day of the start date', () => {
|
||||
// dailyTask.repeat = {
|
||||
// su: false,
|
||||
// s: false,
|
||||
// f: false,
|
||||
// th: false,
|
||||
// w: false,
|
||||
// t: false,
|
||||
// m: false,
|
||||
// };
|
||||
|
||||
let today = moment('01/27/2017');
|
||||
let week = today.monthWeek();
|
||||
let dayOfWeek = today.day();
|
||||
dailyTask.startDate = today.toDate();
|
||||
dailyTask.weeksOfMonth = [week];
|
||||
dailyTask.repeat[DAY_MAPPING[dayOfWeek]] = true;
|
||||
dailyTask.everyX = 1;
|
||||
dailyTask.frequency = 'monthly';
|
||||
day = moment('02/24/2017');
|
||||
// let today = moment('01/27/2017');
|
||||
// let week = today.monthWeek();
|
||||
// let dayOfWeek = today.day();
|
||||
// dailyTask.startDate = today.toDate();
|
||||
// dailyTask.weeksOfMonth = [week];
|
||||
// dailyTask.repeat[DAY_MAPPING[dayOfWeek]] = true;
|
||||
// dailyTask.everyX = 1;
|
||||
// dailyTask.frequency = 'monthly';
|
||||
// day = moment('02/24/2017');
|
||||
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
});
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
// });
|
||||
|
||||
it('leaves daily inactive if not day of the month with every x month on weekday', () => {
|
||||
dailyTask.repeat = {
|
||||
su: false,
|
||||
s: false,
|
||||
f: false,
|
||||
th: false,
|
||||
w: false,
|
||||
t: false,
|
||||
m: false,
|
||||
};
|
||||
// it('leaves daily inactive if not day of the month with every x month on weekday', () => {
|
||||
// dailyTask.repeat = {
|
||||
// su: false,
|
||||
// s: false,
|
||||
// f: false,
|
||||
// th: false,
|
||||
// w: false,
|
||||
// t: false,
|
||||
// m: false,
|
||||
// };
|
||||
|
||||
let today = moment('01/26/2017');
|
||||
let week = today.monthWeek();
|
||||
let dayOfWeek = today.day();
|
||||
dailyTask.startDate = today.toDate();
|
||||
dailyTask.weeksOfMonth = [week];
|
||||
dailyTask.repeat[DAY_MAPPING[dayOfWeek]] = true;
|
||||
dailyTask.everyX = 2;
|
||||
dailyTask.frequency = 'monthly';
|
||||
// let today = moment('01/26/2017');
|
||||
// let week = today.monthWeek();
|
||||
// let dayOfWeek = today.day();
|
||||
// dailyTask.startDate = today.toDate();
|
||||
// dailyTask.weeksOfMonth = [week];
|
||||
// dailyTask.repeat[DAY_MAPPING[dayOfWeek]] = true;
|
||||
// dailyTask.everyX = 2;
|
||||
// dailyTask.frequency = 'monthly';
|
||||
|
||||
day = moment('03/24/2017');
|
||||
// day = moment('03/24/2017');
|
||||
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
});
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
// });
|
||||
|
||||
it('activates Daily if on nth weekday of the x month', () => {
|
||||
dailyTask.repeat = {
|
||||
su: false,
|
||||
s: false,
|
||||
f: false,
|
||||
th: false,
|
||||
w: false,
|
||||
t: false,
|
||||
m: false,
|
||||
};
|
||||
// it('activates Daily if on nth weekday of the x month', () => {
|
||||
// dailyTask.repeat = {
|
||||
// su: false,
|
||||
// s: false,
|
||||
// f: false,
|
||||
// th: false,
|
||||
// w: false,
|
||||
// t: false,
|
||||
// m: false,
|
||||
// };
|
||||
|
||||
let today = moment('01/27/2017');
|
||||
let week = today.monthWeek();
|
||||
let dayOfWeek = today.day();
|
||||
dailyTask.startDate = today.toDate();
|
||||
dailyTask.weeksOfMonth = [week];
|
||||
dailyTask.repeat[DAY_MAPPING[dayOfWeek]] = true;
|
||||
dailyTask.everyX = 2;
|
||||
dailyTask.frequency = 'monthly';
|
||||
// let today = moment('01/27/2017');
|
||||
// let week = today.monthWeek();
|
||||
// let dayOfWeek = today.day();
|
||||
// dailyTask.startDate = today.toDate();
|
||||
// dailyTask.weeksOfMonth = [week];
|
||||
// dailyTask.repeat[DAY_MAPPING[dayOfWeek]] = true;
|
||||
// dailyTask.everyX = 2;
|
||||
// dailyTask.frequency = 'monthly';
|
||||
|
||||
day = moment('03/24/2017');
|
||||
// day = moment('03/24/2017');
|
||||
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
});
|
||||
});
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
// });
|
||||
// });
|
||||
|
||||
context('Every X Years', () => {
|
||||
it('leaves daily inactive if not the correct year', () => {
|
||||
day = moment();
|
||||
dailyTask.everyX = 2;
|
||||
dailyTask.frequency = 'yearly';
|
||||
day = day.add(1, 'day').toDate();
|
||||
// context('Every X Years', () => {
|
||||
// it('leaves daily inactive if not the correct year', () => {
|
||||
// day = moment();
|
||||
// dailyTask.everyX = 2;
|
||||
// dailyTask.frequency = 'yearly';
|
||||
// day = day.add(1, 'day').toDate();
|
||||
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
});
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(false);
|
||||
// });
|
||||
|
||||
it('activates Daily on matching year', () => {
|
||||
day = moment();
|
||||
dailyTask.everyX = 2;
|
||||
dailyTask.frequency = 'yearly';
|
||||
day = day.add(2, 'years').toDate();
|
||||
// it('activates Daily on matching year', () => {
|
||||
// day = moment();
|
||||
// dailyTask.everyX = 2;
|
||||
// dailyTask.frequency = 'yearly';
|
||||
// day = day.add(2, 'years').toDate();
|
||||
|
||||
expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
// expect(shouldDo(day, dailyTask, options)).to.equal(true);
|
||||
// });
|
||||
// });
|
||||
// });
|
||||
|
||||
Reference in New Issue
Block a user