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', () => {
|
||||
|
||||
@@ -106,9 +106,7 @@ function getClassName (classType, language) {
|
||||
|
||||
shops.checkMarketGearLocked = function checkMarketGearLocked (user, items) {
|
||||
let result = filter(items, ['pinType', 'marketGear']);
|
||||
|
||||
let availableGear = map(updateStore(user), (item) => getItemInfo(user, 'marketGear', item).path);
|
||||
|
||||
for (let gear of result) {
|
||||
if (gear.klass !== user.stats.class) {
|
||||
gear.locked = true;
|
||||
@@ -167,9 +165,7 @@ shops.getMarketGearCategories = function getMarketGear (user, language) {
|
||||
});
|
||||
|
||||
category.items = map(result, (e) => {
|
||||
let newItem = getItemInfo(user, 'marketGear', e, officialPinnedItems);
|
||||
|
||||
return newItem;
|
||||
return getItemInfo(user, 'marketGear', e, officialPinnedItems);
|
||||
});
|
||||
|
||||
let specialGear = filter(content.gear.flat, (gear) => {
|
||||
@@ -183,7 +179,6 @@ shops.getMarketGearCategories = function getMarketGear (user, language) {
|
||||
});
|
||||
|
||||
shops.checkMarketGearLocked(user, category.items);
|
||||
|
||||
categories.push(category);
|
||||
}
|
||||
|
||||
@@ -193,20 +188,20 @@ shops.getMarketGearCategories = function getMarketGear (user, language) {
|
||||
};
|
||||
|
||||
let falseGear = filter(content.gear.flat, (gear) => {
|
||||
return user.items.gear.owned[gear.key] === false &&
|
||||
(gear.klass === 'special' && !gear.specialClass ||
|
||||
gear.key.indexOf('mystery') !== -1 ||
|
||||
gear.key.indexOf('armoire') !== -1);
|
||||
let prevOwnedFalseGear = user.items.gear.owned[gear.key] === false && gear.klass !== user.stats.class;
|
||||
let specialNonClassGear = !user.items.gear.owned[gear.key] &&
|
||||
content.classes.indexOf(gear.klass) < 0 &&
|
||||
content.classes.indexOf(gear.specialClass) < 0 &&
|
||||
(gear.canOwn && gear.canOwn(user));
|
||||
return prevOwnedFalseGear || specialNonClassGear;
|
||||
});
|
||||
|
||||
nonClassCategory.items = map(falseGear, (e) => {
|
||||
let newItem = getItemInfo(user, 'marketGear', e);
|
||||
|
||||
return newItem;
|
||||
return getItemInfo(user, 'marketGear', e);
|
||||
});
|
||||
|
||||
shops.checkMarketGearLocked(user, nonClassCategory.items);
|
||||
categories.push(nonClassCategory);
|
||||
|
||||
return categories;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user