mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
Hall Fixes (#11403)
* fix(hall): correctly casts owned gear and mounts * typo
This commit is contained in:
@@ -100,14 +100,23 @@ describe('Items Utils', () => {
|
||||
});
|
||||
|
||||
it('converts values for mounts paths to numbers', () => {
|
||||
expect(castItemVal('items.mounts.Cactus-Base', '5')).to.equal(5);
|
||||
expect(castItemVal('items.mounts.Aether-Invisible', '5')).to.equal(5);
|
||||
expect(castItemVal('items.mounts.Aether-Invalid', '5')).to.equal(5);
|
||||
expect(castItemVal('items.mounts.Cactus-Base', 'true')).to.equal(true);
|
||||
expect(castItemVal('items.mounts.Aether-Invisible', 'false')).to.equal(false);
|
||||
expect(castItemVal('items.mounts.Aether-Invalid', 'true')).to.equal(true);
|
||||
expect(castItemVal('items.mounts.Aether-Invalid', 'truish')).to.equal(true);
|
||||
expect(castItemVal('items.mounts.Aether-Invalid', 0)).to.equal(false);
|
||||
});
|
||||
|
||||
it('converts values for quests paths to numbers', () => {
|
||||
expect(castItemVal('items.quests.atom3', '5')).to.equal(5);
|
||||
expect(castItemVal('items.quests.invalid', '5')).to.equal(5);
|
||||
});
|
||||
|
||||
it('converts values for owned gear', () => {
|
||||
expect(castItemVal('items.gear.owned.shield_warrior_0', 'true')).to.equal(true);
|
||||
expect(castItemVal('items.gear.owned.invalid', 'false')).to.equal(false);
|
||||
expect(castItemVal('items.gear.owned.invalid', 'thruthy')).to.equal(true);
|
||||
expect(castItemVal('items.gear.owned.invalid', 0)).to.equal(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -60,18 +60,26 @@ export function validateItemPath (itemPath) {
|
||||
// value to the correct format.
|
||||
// Example a numeric string like "5" applied to a food item (expecting an interger)
|
||||
// will be converted to the number 5
|
||||
// TODO cast the correct value for `items.gear.owned`
|
||||
export function castItemVal (itemPath, itemVal) {
|
||||
if (
|
||||
itemPath.indexOf('items.pets') === 0 ||
|
||||
itemPath.indexOf('items.eggs') === 0 ||
|
||||
itemPath.indexOf('items.hatchingPotions') === 0 ||
|
||||
itemPath.indexOf('items.food') === 0 ||
|
||||
itemPath.indexOf('items.mounts') === 0 ||
|
||||
itemPath.indexOf('items.quests') === 0
|
||||
) {
|
||||
return Number(itemVal);
|
||||
}
|
||||
|
||||
if (
|
||||
itemPath.indexOf('items.mounts') === 0 ||
|
||||
itemPath.indexOf('items.gear.owned') === 0
|
||||
) {
|
||||
if (itemVal === 'true') return true;
|
||||
if (itemVal === 'false') return false;
|
||||
|
||||
return Boolean(itemVal);
|
||||
}
|
||||
|
||||
return itemVal;
|
||||
}
|
||||
Reference in New Issue
Block a user