From 9ec26a8ee9a9447359cc5b7366753d1625432a0e Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sun, 13 Dec 2015 16:29:29 -0600 Subject: [PATCH] tests(common): Use generateUser helper in dailies test --- test/common/dailies.js | 109 +++++++++++++---------------------------- 1 file changed, 35 insertions(+), 74 deletions(-) diff --git a/test/common/dailies.js b/test/common/dailies.js index 079ecb59e9..eed297b353 100644 --- a/test/common/dailies.js +++ b/test/common/dailies.js @@ -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;