mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 22:27:26 +01:00
* Able to see all non class related items in market * Fix lint errors * Able to see all non class related items in market * Fix lint errors * add test for showing contributor gear * Added previously owned items to test with eslint exception
This commit is contained in:
committed by
Sabe Jones
parent
06dd9fe859
commit
9e1a262f96
@@ -34,6 +34,31 @@ describe('shops', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('shows relevant non class gear in special category', () => {
|
||||||
|
let contributor = generateUser({
|
||||||
|
contributor: {
|
||||||
|
level: 7,
|
||||||
|
critical: true,
|
||||||
|
},
|
||||||
|
items: {
|
||||||
|
gear: {
|
||||||
|
owned: {
|
||||||
|
weapon_armoire_basicCrossbow: true, // eslint-disable-line camelcase
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
let gearCategories = shared.shops.getMarketGearCategories(contributor);
|
||||||
|
let specialCategory = gearCategories.find(o => o.identifier === 'none');
|
||||||
|
expect(specialCategory.items.find((item) => item.key === 'weapon_special_1'));
|
||||||
|
expect(specialCategory.items.find((item) => item.key === 'armor_special_1'));
|
||||||
|
expect(specialCategory.items.find((item) => item.key === 'head_special_1'));
|
||||||
|
expect(specialCategory.items.find((item) => item.key === 'shield_special_1'));
|
||||||
|
expect(specialCategory.items.find((item) => item.key === 'weapon_special_critical'));
|
||||||
|
expect(specialCategory.items.find((item) => item.key === 'weapon_armoire_basicCrossbow'));// eslint-disable-line camelcase
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('questShop', () => {
|
describe('questShop', () => {
|
||||||
|
|||||||
@@ -106,9 +106,7 @@ function getClassName (classType, language) {
|
|||||||
|
|
||||||
shops.checkMarketGearLocked = function checkMarketGearLocked (user, items) {
|
shops.checkMarketGearLocked = function checkMarketGearLocked (user, items) {
|
||||||
let result = filter(items, ['pinType', 'marketGear']);
|
let result = filter(items, ['pinType', 'marketGear']);
|
||||||
|
|
||||||
let availableGear = map(updateStore(user), (item) => getItemInfo(user, 'marketGear', item).path);
|
let availableGear = map(updateStore(user), (item) => getItemInfo(user, 'marketGear', item).path);
|
||||||
|
|
||||||
for (let gear of result) {
|
for (let gear of result) {
|
||||||
if (gear.klass !== user.stats.class) {
|
if (gear.klass !== user.stats.class) {
|
||||||
gear.locked = true;
|
gear.locked = true;
|
||||||
@@ -167,9 +165,7 @@ shops.getMarketGearCategories = function getMarketGear (user, language) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
category.items = map(result, (e) => {
|
category.items = map(result, (e) => {
|
||||||
let newItem = getItemInfo(user, 'marketGear', e, officialPinnedItems);
|
return getItemInfo(user, 'marketGear', e, officialPinnedItems);
|
||||||
|
|
||||||
return newItem;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
let specialGear = filter(content.gear.flat, (gear) => {
|
let specialGear = filter(content.gear.flat, (gear) => {
|
||||||
@@ -183,7 +179,6 @@ shops.getMarketGearCategories = function getMarketGear (user, language) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
shops.checkMarketGearLocked(user, category.items);
|
shops.checkMarketGearLocked(user, category.items);
|
||||||
|
|
||||||
categories.push(category);
|
categories.push(category);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -193,20 +188,20 @@ shops.getMarketGearCategories = function getMarketGear (user, language) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let falseGear = filter(content.gear.flat, (gear) => {
|
let falseGear = filter(content.gear.flat, (gear) => {
|
||||||
return user.items.gear.owned[gear.key] === false &&
|
let prevOwnedFalseGear = user.items.gear.owned[gear.key] === false && gear.klass !== user.stats.class;
|
||||||
(gear.klass === 'special' && !gear.specialClass ||
|
let specialNonClassGear = !user.items.gear.owned[gear.key] &&
|
||||||
gear.key.indexOf('mystery') !== -1 ||
|
content.classes.indexOf(gear.klass) < 0 &&
|
||||||
gear.key.indexOf('armoire') !== -1);
|
content.classes.indexOf(gear.specialClass) < 0 &&
|
||||||
|
(gear.canOwn && gear.canOwn(user));
|
||||||
|
return prevOwnedFalseGear || specialNonClassGear;
|
||||||
});
|
});
|
||||||
|
|
||||||
nonClassCategory.items = map(falseGear, (e) => {
|
nonClassCategory.items = map(falseGear, (e) => {
|
||||||
let newItem = getItemInfo(user, 'marketGear', e);
|
return getItemInfo(user, 'marketGear', e);
|
||||||
|
|
||||||
return newItem;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
shops.checkMarketGearLocked(user, nonClassCategory.items);
|
||||||
categories.push(nonClassCategory);
|
categories.push(nonClassCategory);
|
||||||
|
|
||||||
return categories;
|
return categories;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user