Add rage button to debug menu (#15291)

* + Rage

* tinkering

* remove if statement wrapper and modify error message

* add test cases

* more work on test cases

* adding contexts to test cases

* test(debug): fix up tests

* fix(lint): whisepate

---------

Co-authored-by: Sabe Jones <sabe@habitica.com>
This commit is contained in:
Natalie
2024-08-13 01:34:37 -04:00
committed by GitHub
parent 48e381d702
commit 2a2c1af7ba
4 changed files with 120 additions and 1 deletions

View File

@@ -6,6 +6,10 @@ import ensureDevelopmentMode from '../../middlewares/ensureDevelopmentMode';
import ensureTimeTravelMode from '../../middlewares/ensureTimeTravelMode';
import { BadRequest } from '../../libs/errors';
import common from '../../../common';
import {
model as Group,
// basicFields as basicGroupFields,
} from '../../models/group';
const { content } = common;
@@ -204,6 +208,41 @@ api.questProgress = {
},
};
/**
* @api {post} /api/v3/debug/boss-rage Artificially trigger boss rage bar
* @apiName bossRage
* @apiGroup Development
* @apiPermission Developers
*
* @apiSuccess {Object} data An empty Object
*/
api.bossRage = {
method: 'POST',
url: '/debug/boss-rage',
middlewares: [ensureDevelopmentMode, authWithHeaders()],
async handler (req, res) {
const { user } = res.locals;
const party = await Group.getGroup({
user,
groupId: 'party',
});
if (!party) {
throw new BadRequest('User not in a party.');
}
if (!party.quest.progress.rage) party.quest.progress.rage = 0;
party.quest.progress.rage += 50;
party.markModified('party.quest.progress.rage');
await party.save();
res.respond(200, {});
},
};
let clock;
function fakeClock () {