add tests for fns/ultimateGear, fns/handleTwoHanded, fns/randomVal, fns/predictableRandom and partial tests for ops/buy

This commit is contained in:
Matteo Pagliazzi
2016-03-19 18:05:02 +01:00
parent ff72706cae
commit 957e1d26d6
12 changed files with 341 additions and 137 deletions

View File

@@ -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];

View File

@@ -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;
}

View File

@@ -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),
};

View File

@@ -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;

View File

@@ -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;
}