improve armoire release process

This commit is contained in:
Phillip Thelen
2024-04-30 18:11:09 +02:00
parent 71f21c643c
commit 87fc01cb81
2 changed files with 51 additions and 8 deletions

View 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;
});
});
});

View File

@@ -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`),