Adventure Guide Prep (#11883)
* WIP(adventure): prereqs * WIP(drops): new modal * WIP(adventure): analytics fixes etc * feat(adventure): random egg+potion on 2nd task * fix(lint): noworkies * fix(modal): correctly construct classes * fix(tests): expectations and escape * fix(first-drops): address comments * fix(first-drops): don't give random drops until first drops * fix(drops): remove more Level 3 references * refactor(drops): no need for cloning * refactor(drops): unnecessary export * fix(first-drops): force sync * fix(first-drops): move to server * fix(first-drops): escape in case we get here with >0 items * fix(lint): line length * fix(pet-food): remove unused string
This commit is contained in:
@@ -15,6 +15,7 @@ describe('common.fns.randomDrop', () => {
|
||||
beforeEach(() => {
|
||||
user = generateUser();
|
||||
user._tmp = user._tmp ? user._tmp : {};
|
||||
user.items.eggs.Wolf = 0;
|
||||
task = generateTodo({ userId: user._id });
|
||||
predictableRandom = sandbox.stub().returns(0.5);
|
||||
});
|
||||
@@ -34,10 +35,17 @@ describe('common.fns.randomDrop', () => {
|
||||
|
||||
context('drops enabled', () => {
|
||||
beforeEach(() => {
|
||||
user.flags.dropsEnabled = true;
|
||||
task.priority = 100000;
|
||||
});
|
||||
|
||||
it('awards an egg and a hatching potion if user has never received any', () => {
|
||||
delete user.items.eggs.Wolf;
|
||||
randomDrop(user, { task, predictableRandom });
|
||||
|
||||
expect(user._tmp.firstDrops.egg).to.be.a.string;
|
||||
expect(user._tmp.firstDrops.hatchingPotion).to.be.a.string;
|
||||
});
|
||||
|
||||
it('does nothing if user.items.lastDrop.count is exceeded', () => {
|
||||
user.items.lastDrop.count = 100;
|
||||
randomDrop(user, { task, predictableRandom });
|
||||
@@ -46,7 +54,6 @@ describe('common.fns.randomDrop', () => {
|
||||
|
||||
it('drops something when the task is a todo', () => {
|
||||
expect(user._tmp).to.eql({});
|
||||
user.flags.dropsEnabled = true;
|
||||
predictableRandom.returns(0.1);
|
||||
|
||||
randomDrop(user, { task, predictableRandom });
|
||||
@@ -56,7 +63,6 @@ describe('common.fns.randomDrop', () => {
|
||||
it('drops something when the task is a habit', () => {
|
||||
task = generateHabit({ userId: user._id });
|
||||
expect(user._tmp).to.eql({});
|
||||
user.flags.dropsEnabled = true;
|
||||
predictableRandom.returns(0.1);
|
||||
|
||||
randomDrop(user, { task, predictableRandom });
|
||||
@@ -66,7 +72,6 @@ describe('common.fns.randomDrop', () => {
|
||||
it('drops something when the task is a daily', () => {
|
||||
task = generateDaily({ userId: user._id });
|
||||
expect(user._tmp).to.eql({});
|
||||
user.flags.dropsEnabled = true;
|
||||
predictableRandom.returns(0.1);
|
||||
|
||||
randomDrop(user, { task, predictableRandom });
|
||||
@@ -76,7 +81,6 @@ describe('common.fns.randomDrop', () => {
|
||||
it('drops something when the task is a reward', () => {
|
||||
task = generateReward({ userId: user._id });
|
||||
expect(user._tmp).to.eql({});
|
||||
user.flags.dropsEnabled = true;
|
||||
predictableRandom.returns(0.1);
|
||||
|
||||
randomDrop(user, { task, predictableRandom });
|
||||
|
||||
@@ -110,13 +110,6 @@ describe('common.fns.updateStats', () => {
|
||||
expect(user.stats.points).to.eql(10);
|
||||
});
|
||||
|
||||
it('add user notification when drops are enabled', () => {
|
||||
user.stats.lvl = 3;
|
||||
updateStats(user, { });
|
||||
expect(user.addNotification).to.be.calledOnce;
|
||||
expect(user.addNotification).to.be.calledWith('DROPS_ENABLED');
|
||||
});
|
||||
|
||||
it('add user notification when the user levels up', () => {
|
||||
const initialLvl = user.stats.lvl;
|
||||
updateStats(user, {
|
||||
@@ -131,7 +124,7 @@ describe('common.fns.updateStats', () => {
|
||||
it('add user notification when rebirth is enabled', () => {
|
||||
user.stats.lvl = 51;
|
||||
updateStats(user, { });
|
||||
expect(user.addNotification).to.be.calledTwice; // once is for drops enabled
|
||||
expect(user.addNotification).to.be.calledOnce;
|
||||
expect(user.addNotification).to.be.calledWith('REBIRTH_ENABLED');
|
||||
});
|
||||
|
||||
|
||||
@@ -173,7 +173,6 @@ describe('shared.ops.rebirth', () => {
|
||||
|
||||
it('resets a user\'s flags', () => {
|
||||
user.flags.itemsEnabled = true;
|
||||
user.flags.dropsEnabled = true;
|
||||
user.flags.classSelected = true;
|
||||
user.flags.rebirthEnabled = true;
|
||||
user.flags.levelDrops = { test: 'test' };
|
||||
@@ -181,7 +180,6 @@ describe('shared.ops.rebirth', () => {
|
||||
rebirth(user);
|
||||
|
||||
expect(user.flags.itemsEnabled).to.be.false;
|
||||
expect(user.flags.dropsEnabled).to.be.false;
|
||||
expect(user.flags.classSelected).to.be.false;
|
||||
expect(user.flags.rebirthEnabled).to.be.false;
|
||||
expect(user.flags.levelDrops).to.be.empty;
|
||||
|
||||
Reference in New Issue
Block a user