mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 22:57:21 +01:00
add tests for fns/ultimateGear, fns/handleTwoHanded, fns/randomVal, fns/predictableRandom and partial tests for ops/buy
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import content from '../content/index';
|
||||
import i18n from '../i18n';
|
||||
|
||||
module.exports = function handleTwoHanded (user, item, type = 'equipped', req) {
|
||||
module.exports = function handleTwoHanded (user, item, type = 'equipped', req = {}) {
|
||||
let currentShield = content.gear.flat[user.items.gear[type].shield];
|
||||
let currentWeapon = content.gear.flat[user.items.gear[type].weapon];
|
||||
|
||||
|
||||
@@ -2,16 +2,7 @@ import content from '../content/index';
|
||||
import _ from 'lodash';
|
||||
|
||||
module.exports = function ultimateGear (user) {
|
||||
let owned = window ? user.items.gear.owned : user.items.gear.owned.toObject();
|
||||
|
||||
if (!user.achievements.ultimateGearSets) {
|
||||
user.achievements.ultimateGearSets = {
|
||||
healer: false,
|
||||
wizard: false,
|
||||
rogue: false,
|
||||
warrior: false,
|
||||
};
|
||||
}
|
||||
let owned = typeof window !== 'undefined' ? user.items.gear.owned : user.items.gear.owned.toObject();
|
||||
|
||||
content.classes.forEach((klass) => {
|
||||
if (user.achievements.ultimateGearSets[klass] !== true) {
|
||||
@@ -24,9 +15,6 @@ module.exports = function ultimateGear (user) {
|
||||
}
|
||||
});
|
||||
|
||||
// TODO
|
||||
if (user.markModified) user.markModified('achievements.ultimateGearSets');
|
||||
|
||||
if (_.contains(user.achievements.ultimateGearSets, true) && user.flags.armoireEnabled !== true) {
|
||||
user.flags.armoireEnabled = true;
|
||||
}
|
||||
|
||||
@@ -155,6 +155,12 @@ api.wrap = function wrapUser (user, main = true) {
|
||||
if (user._wrapped) return;
|
||||
user._wrapped = true;
|
||||
|
||||
// Make markModified available on the client side as a noop function
|
||||
// TODO move to client?
|
||||
if (!user.markModified) {
|
||||
user.markModified = function noopMarkModified () {};
|
||||
}
|
||||
|
||||
if (main) {
|
||||
user.ops = {
|
||||
update: _.partial(importedOps.update, user),
|
||||
@@ -183,14 +189,10 @@ api.wrap = function wrapUser (user, main = true) {
|
||||
deletePM: _.partial(importedOps.deletePM, user),
|
||||
blockUser: _.partial(importedOps.blockUser, user),
|
||||
feed: _.partial(importedOps.feed, user),
|
||||
buySpecialSpell: _.partial(importedOps.buySpecialSpell, user),
|
||||
purchase: _.partial(importedOps.purchase, user),
|
||||
releasePets: _.partial(importedOps.releasePets, user),
|
||||
releaseMounts: _.partial(importedOps.releaseMounts, user),
|
||||
releaseBoth: _.partial(importedOps.releaseBoth, user),
|
||||
buy: _.partial(importedOps.buy, user),
|
||||
buyQuest: _.partial(importedOps.buyQuest, user),
|
||||
buyMysterySet: _.partial(importedOps.buyMysterySet, user),
|
||||
hourglassPurchase: _.partial(importedOps.hourglassPurchase, user),
|
||||
sell: _.partial(importedOps.sell, user),
|
||||
equip: _.partial(importedOps.equip, user),
|
||||
@@ -207,10 +209,7 @@ api.wrap = function wrapUser (user, main = true) {
|
||||
|
||||
user.fns = {
|
||||
getItem: _.partial(importedFns.getItem, user),
|
||||
handleTwoHanded: _.partial(importedFns.handleTwoHanded, user),
|
||||
predictableRandom: _.partial(importedFns.predictableRandom, user),
|
||||
crit: _.partial(importedFns.crit, user),
|
||||
randomVal: _.partial(importedFns.randomVal, user),
|
||||
dotSet: _.partial(importedFns.dotSet, user),
|
||||
dotGet: _.partial(importedFns.dotGet, user),
|
||||
randomDrop: _.partial(importedFns.randomDrop, user),
|
||||
@@ -218,7 +217,6 @@ api.wrap = function wrapUser (user, main = true) {
|
||||
updateStats: _.partial(importedFns.updateStats, user),
|
||||
cron: _.partial(importedFns.cron, user),
|
||||
preenUserHistory: _.partial(importedFns.preenUserHistory, user),
|
||||
ultimateGear: _.partial(importedFns.ultimateGear, user),
|
||||
nullify: _.partial(importedFns.nullify, user),
|
||||
};
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ module.exports = function buy (user, req = {}, analytics) {
|
||||
} else {
|
||||
if (user.preferences.autoEquip) {
|
||||
user.items.gear.equipped[item.type] = item.key;
|
||||
message = handleTwoHanded(user, item, null, req);
|
||||
message = handleTwoHanded(user, item, undefined, req);
|
||||
}
|
||||
user.items.gear.owned[item.key] = true;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ module.exports = function buyMysterySet (user, req = {}, analytics) {
|
||||
throw new NotFound(i18n.t('mysterySetNotFound', req.language));
|
||||
}
|
||||
|
||||
if (window && window.confirm) { // TODO move to client
|
||||
if (typeof window !== 'undefined' && window.confirm) { // TODO move to client
|
||||
if (!window.confirm(i18n.t('hourglassBuyEquipSetConfirm'))) return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user