mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 15:17:25 +01:00
improve armoire release process
This commit is contained in:
34
test/content/armoire.test.js
Normal file
34
test/content/armoire.test.js
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
/* eslint-disable global-require */
|
||||||
|
import forEach from 'lodash/forEach';
|
||||||
|
|
||||||
|
describe('armoire', () => {
|
||||||
|
let clock;
|
||||||
|
beforeEach(() => {
|
||||||
|
clock = sinon.useFakeTimers(new Date('2024-01-01'));
|
||||||
|
});
|
||||||
|
afterEach(() => {
|
||||||
|
clock.restore();
|
||||||
|
});
|
||||||
|
it('does not return unreleased gear', async () => {
|
||||||
|
const {
|
||||||
|
armor,
|
||||||
|
body,
|
||||||
|
eyewear,
|
||||||
|
head,
|
||||||
|
headAccessory,
|
||||||
|
shield,
|
||||||
|
weapon,
|
||||||
|
} = require('../../website/common/script/content/gear/sets/armoire');
|
||||||
|
const items = [];
|
||||||
|
items.push(...Object.values(armor));
|
||||||
|
items.push(...Object.values(body));
|
||||||
|
items.push(...Object.values(eyewear));
|
||||||
|
items.push(...Object.values(head));
|
||||||
|
items.push(...Object.values(headAccessory));
|
||||||
|
items.push(...Object.values(shield));
|
||||||
|
items.push(...Object.values(weapon));
|
||||||
|
forEach(items, item => {
|
||||||
|
expect(item.released).to.be.true;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -1799,14 +1799,15 @@ const weapon = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const releaseDay = 7;
|
||||||
const releaseDates = {
|
const releaseDates = {
|
||||||
somethingSpooky: '2023-10-10T08:00-04:00',
|
somethingSpooky: { year: 2023, month: 10 },
|
||||||
cookingImplementsTwo: '2023-11-07T08:00-05:00',
|
cookingImplementsTwo: { year: 2023, month: 11 },
|
||||||
greenTrapper: '2023-12-05T08:00-05:00',
|
greenTrapper: { year: 2023, month: 12 },
|
||||||
schoolUniform: '2024-01-04T08:00-05:00',
|
schoolUniform: { year: 2024, month: 1 },
|
||||||
whiteLoungeWear: '2024-02-06T08:00-05:00',
|
whiteLoungeWear: { year: 2024, month: 2 },
|
||||||
hatterSet: '2024-03-05T08:00-05:00',
|
hatterSet: { year: 2024, month: 3 },
|
||||||
optimistSet: '2024-03-05T00:00-05:00',
|
optimistSet: { year: 2024, month: 4 },
|
||||||
};
|
};
|
||||||
|
|
||||||
forEach({
|
forEach({
|
||||||
@@ -1818,6 +1819,8 @@ forEach({
|
|||||||
shield,
|
shield,
|
||||||
weapon,
|
weapon,
|
||||||
}, (set, setKey) => {
|
}, (set, setKey) => {
|
||||||
|
const today = moment();
|
||||||
|
const releaseDateEndPart = `${releaseDay}T08:00-05:00`;
|
||||||
forEach(set, (gearItem, gearKey) => {
|
forEach(set, (gearItem, gearKey) => {
|
||||||
const gearStats = {};
|
const gearStats = {};
|
||||||
const gearStatValues = [];
|
const gearStatValues = [];
|
||||||
@@ -1841,8 +1844,14 @@ forEach({
|
|||||||
} else {
|
} else {
|
||||||
notes = t(`${setKey}Armoire${upperFirst(gearKey)}Notes`);
|
notes = t(`${setKey}Armoire${upperFirst(gearKey)}Notes`);
|
||||||
}
|
}
|
||||||
|
let released;
|
||||||
|
if (releaseDates[gearItem.set]) {
|
||||||
|
released = today.isAfter(`${releaseDates[gearItem.set].year}-${releaseDates[gearItem.set].month}-${releaseDateEndPart}`);
|
||||||
|
} else {
|
||||||
|
released = true;
|
||||||
|
}
|
||||||
defaults(gearItem, {
|
defaults(gearItem, {
|
||||||
released: releaseDates[gearItem.set] ? moment().isAfter(releaseDates[gearItem.set]) : true,
|
released,
|
||||||
canOwn: ownsItem(`${setKey}_armoire_${gearKey}`),
|
canOwn: ownsItem(`${setKey}_armoire_${gearKey}`),
|
||||||
notes,
|
notes,
|
||||||
text: t(`${setKey}Armoire${upperFirst(gearKey)}Text`),
|
text: t(`${setKey}Armoire${upperFirst(gearKey)}Text`),
|
||||||
|
|||||||
Reference in New Issue
Block a user