mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 06:07:21 +01:00
Add tests to check for correct food content populating
This commit is contained in:
94
test/content/food.test.js
Normal file
94
test/content/food.test.js
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
/* eslint-disable global-require */
|
||||||
|
import {
|
||||||
|
each,
|
||||||
|
} from 'lodash';
|
||||||
|
import {
|
||||||
|
expectValidTranslationString,
|
||||||
|
} from '../helpers/content.helper';
|
||||||
|
import content from '../../website/common/script/content';
|
||||||
|
|
||||||
|
describe('food', () => {
|
||||||
|
let clock;
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
if (clock) {
|
||||||
|
clock.restore();
|
||||||
|
}
|
||||||
|
delete require.cache[require.resolve('../../website/common/script/content')];
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('all', () => {
|
||||||
|
it('contains basic information about each food item', () => {
|
||||||
|
each(content.food, (foodItem, key) => {
|
||||||
|
if (foodItem.key === 'Saddle') {
|
||||||
|
expectValidTranslationString(foodItem.sellWarningNote);
|
||||||
|
} else {
|
||||||
|
expectValidTranslationString(foodItem.textA);
|
||||||
|
expectValidTranslationString(foodItem.textThe);
|
||||||
|
expectValidTranslationString(foodItem.target);
|
||||||
|
}
|
||||||
|
expectValidTranslationString(foodItem.text);
|
||||||
|
expectValidTranslationString(foodItem.notes);
|
||||||
|
expect(foodItem.canBuy).to.be.a('function');
|
||||||
|
expect(foodItem.value).to.be.a('number');
|
||||||
|
expect(foodItem.key).to.equal(key);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('sets canDrop for normal food if there is no food season', () => {
|
||||||
|
clock = sinon.useFakeTimers(new Date(2024, 5, 8));
|
||||||
|
const datedContent = require('../../website/common/script/content').default;
|
||||||
|
each(datedContent.food, foodItem => {
|
||||||
|
if (foodItem.key.indexOf('Cake') === -1 && foodItem.key.indexOf('Candy_') === -1 && foodItem.key.indexOf('Pie_') === -1 && foodItem.key !== 'Saddle') {
|
||||||
|
expect(foodItem.canDrop).to.equal(true);
|
||||||
|
} else {
|
||||||
|
expect(foodItem.canDrop).to.equal(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('sets canDrop for candy if it is candy season', () => {
|
||||||
|
clock = sinon.useFakeTimers(new Date(2024, 9, 31));
|
||||||
|
const datedContent = require('../../website/common/script/content').default;
|
||||||
|
each(datedContent.food, foodItem => {
|
||||||
|
if (foodItem.key.indexOf('Candy_') !== -1) {
|
||||||
|
expect(foodItem.canDrop).to.equal(true);
|
||||||
|
} else {
|
||||||
|
expect(foodItem.canDrop).to.equal(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('sets canDrop for cake if it is cake season', () => {
|
||||||
|
clock = sinon.useFakeTimers(new Date(2024, 0, 31));
|
||||||
|
const datedContent = require('../../website/common/script/content').default;
|
||||||
|
each(datedContent.food, foodItem => {
|
||||||
|
if (foodItem.key.indexOf('Cake_') !== -1) {
|
||||||
|
expect(foodItem.canDrop).to.equal(true);
|
||||||
|
} else {
|
||||||
|
expect(foodItem.canDrop).to.equal(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('sets canDrop for pie if it is pie season', () => {
|
||||||
|
clock = sinon.useFakeTimers(new Date(2024, 2, 14));
|
||||||
|
const datedContent = require('../../website/common/script/content').default;
|
||||||
|
each(datedContent.food, foodItem => {
|
||||||
|
if (foodItem.key.indexOf('Pie_') !== -1) {
|
||||||
|
expect(foodItem.canDrop).to.equal(true);
|
||||||
|
} else {
|
||||||
|
expect(foodItem.canDrop).to.equal(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('sets correct values for saddles', () => {
|
||||||
|
const saddle = content.food.Saddle;
|
||||||
|
expect(saddle.canBuy).to.be.a('function');
|
||||||
|
expect(saddle.value).to.equal(5);
|
||||||
|
expect(saddle.key).to.equal('Saddle');
|
||||||
|
expect(saddle.canDrop).to.equal(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -19,7 +19,7 @@ function validateMatcher (matcher, checkedDate) {
|
|||||||
expect(matcher.end).to.be.greaterThan(checkedDate);
|
expect(matcher.end).to.be.greaterThan(checkedDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
describe.only('Content Schedule', () => {
|
describe('Content Schedule', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
clearCachedMatchers();
|
clearCachedMatchers();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ export function getRepeatingEvents (date) {
|
|||||||
const endDate = eventData.end.replace('1970', momentDate.year());
|
const endDate = eventData.end.replace('1970', momentDate.year());
|
||||||
|
|
||||||
return momentDate.isBetween(startDate, endDate);
|
return momentDate.isBetween(startDate, endDate);
|
||||||
});
|
}).map(eventKey => REPEATING_EVENTS[eventKey]);
|
||||||
}
|
}
|
||||||
|
|
||||||
export const EVENTS = {
|
export const EVENTS = {
|
||||||
|
|||||||
Reference in New Issue
Block a user