Ported reroll. Added unit tests. Added reroll route. Added integration tests
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
import reroll from '../../../common/script/ops/reroll';
|
||||
import i18n from '../../../common/script/i18n';
|
||||
import {
|
||||
generateUser,
|
||||
generateDaily,
|
||||
generateReward,
|
||||
} from '../../helpers/common.helper';
|
||||
import {
|
||||
NotAuthorized,
|
||||
} from '../../../common/script/libs/errors';
|
||||
|
||||
describe('shared.ops.reroll', () => {
|
||||
let user;
|
||||
let tasks = [];
|
||||
|
||||
beforeEach(() => {
|
||||
user = generateUser();
|
||||
user.balance = 1;
|
||||
tasks = [generateDaily(), generateReward()];
|
||||
});
|
||||
|
||||
it('returns an error when user balance is too low', (done) => {
|
||||
user.balance = 0;
|
||||
|
||||
try {
|
||||
reroll(user);
|
||||
} catch (err) {
|
||||
expect(err).to.be.an.instanceof(NotAuthorized);
|
||||
expect(err.message).to.equal(i18n.t('notEnoughGems'));
|
||||
done();
|
||||
}
|
||||
});
|
||||
|
||||
it('rerolls a user with enough gems', () => {
|
||||
let response = reroll(user);
|
||||
|
||||
expect(response.message).to.equal(i18n.t('rerollComplete'));
|
||||
});
|
||||
|
||||
it('reduces a user\'s balance', () => {
|
||||
reroll(user);
|
||||
|
||||
expect(user.balance).to.equal(0);
|
||||
});
|
||||
|
||||
it('resets a user\'s health points', () => {
|
||||
user.stats.hp = 40;
|
||||
|
||||
reroll(user);
|
||||
|
||||
expect(user.stats.hp).to.equal(50);
|
||||
});
|
||||
|
||||
it('resets user\'s taks values except for rewards to 0', () => {
|
||||
tasks[0].value = 1;
|
||||
tasks[1].value = 1;
|
||||
|
||||
reroll(user, tasks);
|
||||
|
||||
expect(tasks[0].value).to.equal(0);
|
||||
expect(tasks[1].value).to.equal(1);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user