tests(common): Use generateUser helper in dailies test
This commit is contained in:
+35
-74
@@ -33,74 +33,12 @@ let repeatWithoutLastWeekday = () => { // eslint-disable-line no-unused-vars
|
||||
|
||||
/* Helper Functions */
|
||||
|
||||
let newUser = (addTasks = true) => {
|
||||
let buffs;
|
||||
let user;
|
||||
|
||||
buffs = {
|
||||
per: 0,
|
||||
int: 0,
|
||||
con: 0,
|
||||
str: 0,
|
||||
stealth: 0,
|
||||
streaks: false,
|
||||
};
|
||||
user = {
|
||||
auth: {
|
||||
timestamps: {},
|
||||
},
|
||||
stats: {
|
||||
str: 1,
|
||||
con: 1,
|
||||
per: 1,
|
||||
int: 1,
|
||||
mp: 32,
|
||||
class: 'warrior',
|
||||
buffs,
|
||||
},
|
||||
items: {
|
||||
lastDrop: {
|
||||
count: 0,
|
||||
},
|
||||
hatchingPotions: {},
|
||||
eggs: {},
|
||||
food: {},
|
||||
gear: {
|
||||
equipped: {},
|
||||
costume: {},
|
||||
},
|
||||
},
|
||||
party: {
|
||||
quest: {
|
||||
progress: {
|
||||
down: 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
preferences: {},
|
||||
dailys: [],
|
||||
todos: [],
|
||||
rewards: [],
|
||||
flags: {},
|
||||
achievements: {},
|
||||
contributor: {
|
||||
level: 2,
|
||||
},
|
||||
};
|
||||
shared.wrap(user);
|
||||
user.ops.reset(null, () => {});
|
||||
if (addTasks) {
|
||||
_.each(['habit', 'todo', 'daily'], (task) => {
|
||||
user.ops.addTask({
|
||||
body: {
|
||||
type: task,
|
||||
id: shared.uuid(),
|
||||
},
|
||||
});
|
||||
});
|
||||
}
|
||||
return user;
|
||||
};
|
||||
import {
|
||||
generateUser,
|
||||
generateDaily,
|
||||
generateHabit,
|
||||
generateTodo,
|
||||
} from '../helpers/common.helper';
|
||||
|
||||
let cron = (usr, missedDays = 1) => {
|
||||
usr.lastCron = moment().subtract(missedDays, 'days');
|
||||
@@ -114,7 +52,7 @@ describe('daily/weekly that repeats everyday (default)', () => {
|
||||
|
||||
describe('when startDate is in the future', () => {
|
||||
beforeEach(() => {
|
||||
user = newUser();
|
||||
user = generateUser();
|
||||
user.dailys = [
|
||||
shared.taskDefaults({
|
||||
type: 'daily',
|
||||
@@ -138,15 +76,18 @@ describe('daily/weekly that repeats everyday (default)', () => {
|
||||
daily = user.dailys[0];
|
||||
weekly = user.dailys[1];
|
||||
});
|
||||
|
||||
it('does not damage user for not completing it', () => {
|
||||
cron(user);
|
||||
expect(user.stats.hp).to.be(50);
|
||||
});
|
||||
|
||||
it('does not change value on cron if daily is incomplete', () => {
|
||||
cron(user);
|
||||
expect(daily.value).to.be(0);
|
||||
expect(weekly.value).to.be(0);
|
||||
});
|
||||
|
||||
it('does not reset checklists if daily is not marked as complete', () => {
|
||||
let checklist = [
|
||||
{
|
||||
@@ -174,6 +115,7 @@ describe('daily/weekly that repeats everyday (default)', () => {
|
||||
expect(weekly.checklist[1].completed).to.be(true);
|
||||
expect(weekly.checklist[2].completed).to.be(false);
|
||||
});
|
||||
|
||||
it('resets checklists if daily is marked as complete', () => {
|
||||
let checklist = [
|
||||
{
|
||||
@@ -203,6 +145,7 @@ describe('daily/weekly that repeats everyday (default)', () => {
|
||||
expect(box.completed).to.be(false);
|
||||
});
|
||||
});
|
||||
|
||||
it('is due on startDate', () => {
|
||||
let daily_due_today = shared.shouldDo(moment(), daily);
|
||||
let daily_due_on_start_date = shared.shouldDo(moment().add(7, 'days'), daily);
|
||||
@@ -217,9 +160,10 @@ describe('daily/weekly that repeats everyday (default)', () => {
|
||||
expect(weekly_due_on_start_date).to.be(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('when startDate is in the past', () => {
|
||||
beforeEach(() => {
|
||||
user = newUser();
|
||||
user = generateUser();
|
||||
user.dailys = [
|
||||
shared.taskDefaults({
|
||||
type: 'daily',
|
||||
@@ -234,20 +178,24 @@ describe('daily/weekly that repeats everyday (default)', () => {
|
||||
daily = user.dailys[0];
|
||||
weekly = user.dailys[1];
|
||||
});
|
||||
|
||||
it('does damage user for not completing it', () => {
|
||||
cron(user);
|
||||
expect(user.stats.hp).to.be.lessThan(50);
|
||||
});
|
||||
|
||||
it('decreases value on cron if daily is incomplete', () => {
|
||||
cron(user, 1);
|
||||
expect(daily.value).to.be(-1);
|
||||
expect(weekly.value).to.be(-1);
|
||||
});
|
||||
|
||||
it('decreases value on cron once only if daily is incomplete and multiple days are missed', () => {
|
||||
cron(user, 7);
|
||||
expect(daily.value).to.be(-1);
|
||||
expect(weekly.value).to.be(-1);
|
||||
});
|
||||
|
||||
it('resets checklists if daily is not marked as complete', () => {
|
||||
let checklist;
|
||||
|
||||
@@ -276,6 +224,7 @@ describe('daily/weekly that repeats everyday (default)', () => {
|
||||
expect(box.completed).to.be(false);
|
||||
});
|
||||
});
|
||||
|
||||
it('resets checklists if daily is marked as complete', () => {
|
||||
let checklist = [
|
||||
{
|
||||
@@ -306,9 +255,10 @@ describe('daily/weekly that repeats everyday (default)', () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('when startDate is today', () => {
|
||||
beforeEach(() => {
|
||||
user = newUser();
|
||||
user = generateUser();
|
||||
user.dailys = [
|
||||
shared.taskDefaults({
|
||||
type: 'daily',
|
||||
@@ -323,15 +273,18 @@ describe('daily/weekly that repeats everyday (default)', () => {
|
||||
daily = user.dailys[0];
|
||||
weekly = user.dailys[1];
|
||||
});
|
||||
|
||||
it('does damage user for not completing it', () => {
|
||||
cron(user);
|
||||
expect(user.stats.hp).to.be.lessThan(50);
|
||||
});
|
||||
|
||||
it('decreases value on cron if daily is incomplete', () => {
|
||||
cron(user);
|
||||
expect(daily.value).to.be.lessThan(0);
|
||||
expect(weekly.value).to.be.lessThan(0);
|
||||
});
|
||||
|
||||
it('resets checklists if daily is not marked as complete', () => {
|
||||
let checklist;
|
||||
|
||||
@@ -360,6 +313,7 @@ describe('daily/weekly that repeats everyday (default)', () => {
|
||||
expect(box.completed).to.be(false);
|
||||
});
|
||||
});
|
||||
|
||||
it('resets checklists if daily is marked as complete', () => {
|
||||
let checklist;
|
||||
|
||||
@@ -398,7 +352,7 @@ describe('daily that repeats every x days', () => {
|
||||
let daily = null;
|
||||
|
||||
beforeEach(() => {
|
||||
user = newUser();
|
||||
user = generateUser();
|
||||
user.dailys = [
|
||||
shared.taskDefaults({
|
||||
type: 'daily',
|
||||
@@ -436,7 +390,7 @@ describe('daily that repeats every X days when multiple days are missed', () =>
|
||||
let missedDays = everyX * 2 + 1;
|
||||
|
||||
beforeEach(() => {
|
||||
user = newUser();
|
||||
user = generateUser();
|
||||
user.dailys = [
|
||||
shared.taskDefaults({
|
||||
type: 'daily',
|
||||
@@ -447,10 +401,12 @@ describe('daily that repeats every X days when multiple days are missed', () =>
|
||||
];
|
||||
daily = user.dailys[0];
|
||||
});
|
||||
|
||||
it('decreases value on cron once only if daily is incomplete', () => {
|
||||
cron(user, missedDays);
|
||||
expect(daily.value).to.be(-1);
|
||||
});
|
||||
|
||||
it('resets checklists if daily is incomplete', () => {
|
||||
let checklist = [
|
||||
{
|
||||
@@ -466,6 +422,7 @@ describe('daily that repeats every X days when multiple days are missed', () =>
|
||||
expect(box.completed).to.be(false);
|
||||
});
|
||||
});
|
||||
|
||||
it('resets checklists if daily is marked as complete', () => {
|
||||
let checklist;
|
||||
|
||||
@@ -484,12 +441,13 @@ describe('daily that repeats every X days when multiple days are missed', () =>
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('but not missing a due date', () => {
|
||||
let missedDays;
|
||||
|
||||
missedDays = everyX - 1;
|
||||
beforeEach(() => {
|
||||
user = newUser();
|
||||
user = generateUser();
|
||||
user.dailys = [
|
||||
shared.taskDefaults({
|
||||
type: 'daily',
|
||||
@@ -500,10 +458,12 @@ describe('daily that repeats every X days when multiple days are missed', () =>
|
||||
];
|
||||
daily = user.dailys[0];
|
||||
});
|
||||
|
||||
it('does not decrease value on cron', () => {
|
||||
cron(user, missedDays);
|
||||
expect(daily.value).to.be(0);
|
||||
});
|
||||
|
||||
it('does not reset checklists if daily is incomplete', () => {
|
||||
let checklist;
|
||||
|
||||
@@ -520,6 +480,7 @@ describe('daily that repeats every X days when multiple days are missed', () =>
|
||||
expect(box.completed).to.be(true);
|
||||
});
|
||||
});
|
||||
|
||||
it('resets checklists if daily is marked as complete', () => {
|
||||
let checklist;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user