refactor: adjust randomDrop to use wrapped random function

This commit is contained in:
Blade Barringer
2016-09-24 21:14:09 -05:00
parent 966a50431f
commit 136e2de125
2 changed files with 36 additions and 44 deletions

View File

@@ -16,17 +16,14 @@ describe('common.fns.randomDrop', () => {
user = generateUser();
user._tmp = user._tmp ? user._tmp : {};
task = generateTodo({ userId: user._id });
predictableRandom = () => {
return 0.5;
};
predictableRandom = sandbox.stub().returns(0.5);
});
it('drops an item for the user.party.quest.progress', () => {
expect(user.party.quest.progress.collectedItems).to.eql(0);
user.party.quest.key = 'vice2';
predictableRandom = () => {
return 0.0001;
};
predictableRandom.returns(0.0001);
randomDrop(user, { task, predictableRandom });
expect(user.party.quest.progress.collectedItems).to.eql(1);
expect(user._tmp.quest.collection).to.eql(1);
@@ -50,9 +47,8 @@ describe('common.fns.randomDrop', () => {
it('drops something when the task is a todo', () => {
expect(user._tmp).to.eql({});
user.flags.dropsEnabled = true;
predictableRandom = () => {
return 0.1;
};
predictableRandom.returns(0.1);
randomDrop(user, { task, predictableRandom });
expect(user._tmp).to.not.eql({});
});
@@ -61,9 +57,8 @@ describe('common.fns.randomDrop', () => {
task = generateHabit({ userId: user._id });
expect(user._tmp).to.eql({});
user.flags.dropsEnabled = true;
predictableRandom = () => {
return 0.1;
};
predictableRandom.returns(0.1);
randomDrop(user, { task, predictableRandom });
expect(user._tmp).to.not.eql({});
});
@@ -72,9 +67,8 @@ describe('common.fns.randomDrop', () => {
task = generateDaily({ userId: user._id });
expect(user._tmp).to.eql({});
user.flags.dropsEnabled = true;
predictableRandom = () => {
return 0.1;
};
predictableRandom.returns(0.1);
randomDrop(user, { task, predictableRandom });
expect(user._tmp).to.not.eql({});
});
@@ -83,34 +77,30 @@ describe('common.fns.randomDrop', () => {
task = generateReward({ userId: user._id });
expect(user._tmp).to.eql({});
user.flags.dropsEnabled = true;
predictableRandom = () => {
return 0.1;
};
predictableRandom.returns(0.1);
randomDrop(user, { task, predictableRandom });
expect(user._tmp).to.not.eql({});
});
it('drops food', () => {
predictableRandom = () => {
return 0.65;
};
predictableRandom.returns(0.65);
randomDrop(user, { task, predictableRandom });
expect(user._tmp.drop.type).to.eql('Food');
});
it('drops eggs', () => {
predictableRandom = () => {
return 0.35;
};
predictableRandom.returns(0.35);
randomDrop(user, { task, predictableRandom });
expect(user._tmp.drop.type).to.eql('Egg');
});
context('drops hatching potion', () => {
it('drops a very rare potion', () => {
predictableRandom = () => {
return 0.01;
};
predictableRandom.returns(0.01);
randomDrop(user, { task, predictableRandom });
expect(user._tmp.drop.type).to.eql('HatchingPotion');
expect(user._tmp.drop.value).to.eql(5);
@@ -118,9 +108,8 @@ describe('common.fns.randomDrop', () => {
});
it('drops a rare potion', () => {
predictableRandom = () => {
return 0.08;
};
predictableRandom.returns(0.08);
randomDrop(user, { task, predictableRandom });
expect(user._tmp.drop.type).to.eql('HatchingPotion');
expect(user._tmp.drop.value).to.eql(4);
@@ -129,9 +118,8 @@ describe('common.fns.randomDrop', () => {
});
it('drops an uncommon potion', () => {
predictableRandom = () => {
return 0.17;
};
predictableRandom.returns(0.17);
randomDrop(user, { task, predictableRandom });
expect(user._tmp.drop.type).to.eql('HatchingPotion');
expect(user._tmp.drop.value).to.eql(3);
@@ -140,9 +128,8 @@ describe('common.fns.randomDrop', () => {
});
it('drops a common potion', () => {
predictableRandom = () => {
return 0.20;
};
predictableRandom.returns(0.20);
randomDrop(user, { task, predictableRandom });
expect(user._tmp.drop.type).to.eql('HatchingPotion');
expect(user._tmp.drop.value).to.eql(2);