mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-10-27 19:22:55 +01:00
* feat(content): Hourglass Quest * fix(hourglasses): NaN from undefined * fix(quests): sanity check for negative scrolls * fix(hourglasses): don't show quantity selection for binary items * fix(route): validate number, use body not params * test(timetrav): add quest tests
44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
import {
|
|
generateUser,
|
|
translate as t,
|
|
} from '../../../../helpers/api-integration/v3';
|
|
|
|
describe('POST /user/purchase-hourglass/:type/:key', () => {
|
|
let user;
|
|
|
|
beforeEach(async () => {
|
|
user = await generateUser({
|
|
'purchased.plan.consecutive.trinkets': 2,
|
|
});
|
|
});
|
|
|
|
// More tests in common code unit tests
|
|
|
|
it('buys an hourglass pet', async () => {
|
|
let response = await user.post('/user/purchase-hourglass/pets/MantisShrimp-Base');
|
|
await user.sync();
|
|
|
|
expect(response.message).to.eql(t('hourglassPurchase'));
|
|
expect(user.purchased.plan.consecutive.trinkets).to.eql(1);
|
|
expect(user.items.pets['MantisShrimp-Base']).to.eql(5);
|
|
});
|
|
|
|
it('buys an hourglass quest', async () => {
|
|
let response = await user.post('/user/purchase-hourglass/quests/robot');
|
|
await user.sync();
|
|
|
|
expect(response.message).to.eql(t('hourglassPurchase'));
|
|
expect(user.purchased.plan.consecutive.trinkets).to.eql(1);
|
|
expect(user.items.quests.robot).to.eql(1);
|
|
});
|
|
|
|
it('buys multiple hourglass quests', async () => {
|
|
let response = await user.post('/user/purchase-hourglass/quests/robot', {quantity: 2});
|
|
await user.sync();
|
|
|
|
expect(response.message).to.eql(t('hourglassPurchase'));
|
|
expect(user.purchased.plan.consecutive.trinkets).to.eql(0);
|
|
expect(user.items.quests.robot).to.eql(2);
|
|
});
|
|
});
|