mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 22:57:21 +01:00
76 lines
2.4 KiB
JavaScript
76 lines
2.4 KiB
JavaScript
/* eslint-disable global-require */
|
|
import forEach from 'lodash/forEach';
|
|
import {
|
|
expectValidTranslationString,
|
|
} from '../helpers/content.helper';
|
|
|
|
function makeArmoireIitemList () {
|
|
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));
|
|
return items;
|
|
}
|
|
|
|
describe('armoire', () => {
|
|
let clock;
|
|
beforeEach(() => {
|
|
delete require.cache[require.resolve('../../website/common/script/content/gear/sets/armoire')];
|
|
});
|
|
afterEach(() => {
|
|
clock.restore();
|
|
});
|
|
it('does not return unreleased gear', async () => {
|
|
clock = sinon.useFakeTimers(new Date('2024-01-01'));
|
|
const items = makeArmoireIitemList();
|
|
expect(items.length).to.equal(377);
|
|
forEach(items, item => {
|
|
expect(item.released, item.key).to.be.true;
|
|
});
|
|
});
|
|
|
|
it('released gear has all required properties', async () => {
|
|
clock = sinon.useFakeTimers(new Date('2024-05-08'));
|
|
const items = makeArmoireIitemList();
|
|
expect(items.length).to.equal(396);
|
|
forEach(items, item => {
|
|
if (item.set !== undefined) {
|
|
expect(item.set, item.key).to.be.a('string');
|
|
expect(item.set, item.key).to.not.be.empty;
|
|
}
|
|
expectValidTranslationString(item.text);
|
|
expect(item.released, item.key).to.be.a('boolean');
|
|
expect(item.value, item.key).to.be.a('number');
|
|
});
|
|
});
|
|
|
|
it('releases gear when appropriate', async () => {
|
|
clock = sinon.useFakeTimers(new Date('2024-01-01'));
|
|
const items = makeArmoireIitemList();
|
|
expect(items.length).to.equal(377);
|
|
clock.restore();
|
|
delete require.cache[require.resolve('../../website/common/script/content/gear/sets/armoire')];
|
|
clock = sinon.useFakeTimers(new Date('2024-01-08'));
|
|
const januaryItems = makeArmoireIitemList();
|
|
expect(januaryItems.length).to.equal(381);
|
|
clock.restore();
|
|
delete require.cache[require.resolve('../../website/common/script/content/gear/sets/armoire')];
|
|
clock = sinon.useFakeTimers(new Date('2024-02-20'));
|
|
const febuaryItems = makeArmoireIitemList();
|
|
expect(febuaryItems.length).to.equal(384);
|
|
});
|
|
});
|