rpg-calendar
Version:
Low level library for working with RPG/Fantasy dates
85 lines • 5.46 kB
JavaScript
import { isLeapYearBuilder } from './leapYear';
import { getDaysInMonthBuilder } from './daysInMonth';
const isLeapYear4Years = isLeapYearBuilder(4, true);
describe('Days in month', () => {
test('Simple days in month', () => {
const months = [
{
monthInYear: 1,
name: 'Test Month 1',
daysInMonth: 9
},
{
monthInYear: 2,
name: 'Test Month 2',
daysInMonth: 11
}
];
const getDaysInMonth = getDaysInMonthBuilder(months, isLeapYear4Years);
expect(getDaysInMonth(1, 1999)).toBe(9);
expect(getDaysInMonth(2, 1999)).toBe(11);
});
test('Months with extra days', () => {
const months = [
{
monthInYear: 1,
name: 'Test Month 1',
daysInMonth: 9,
extraDays: [
{
name: 'extra 1'
},
{
name: 'extra 2'
}
]
},
{
monthInYear: 2,
name: 'Test Month 2',
daysInMonth: 11,
extraDays: [
{
name: 'another extra day'
}
]
}
];
const getDaysInMonth = getDaysInMonthBuilder(months, isLeapYear4Years);
expect(getDaysInMonth(1, 1999)).toBe(11);
expect(getDaysInMonth(2, 1999)).toBe(12);
});
test('Months with extra days and leap day', () => {
const months = [
{
monthInYear: 1,
name: 'Test Month 1',
daysInMonth: 9,
extraDays: [
{
name: 'extra 1'
},
{
name: 'leap day',
onlyInLeapYear: true
}
]
},
{
monthInYear: 2,
name: 'Test Month 2',
daysInMonth: 11,
extraDays: [
{
name: 'another extra day'
}
]
}
];
const getDaysInMonth = getDaysInMonthBuilder(months, isLeapYear4Years);
expect(getDaysInMonth(1, 3)).toBe(10);
expect(getDaysInMonth(1, 4)).toBe(11);
expect(getDaysInMonth(2, 1999)).toBe(12);
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5c0luTW9udGgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZGF5c0luTW9udGgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRELE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRXBELFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUU7UUFDaEMsTUFBTSxNQUFNLEdBQXVCO1lBQ2pDO2dCQUNFLFdBQVcsRUFBRSxDQUFDO2dCQUNkLElBQUksRUFBRSxjQUFjO2dCQUNwQixXQUFXLEVBQUUsQ0FBQzthQUNmO1lBQ0Q7Z0JBQ0UsV0FBVyxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLFdBQVcsRUFBRSxFQUFFO2FBQ2hCO1NBQ0YsQ0FBQztRQUNGLE1BQU0sY0FBYyxHQUFHLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXZFLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtRQUNsQyxNQUFNLE1BQU0sR0FBdUI7WUFDakM7Z0JBQ0UsV0FBVyxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLFdBQVcsRUFBRSxDQUFDO2dCQUNkLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxJQUFJLEVBQUUsU0FBUztxQkFDaEI7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO2lCQUNGO2FBQ0Y7WUFDRDtnQkFDRSxXQUFXLEVBQUUsQ0FBQztnQkFDZCxJQUFJLEVBQUUsY0FBYztnQkFDcEIsV0FBVyxFQUFFLEVBQUU7Z0JBQ2YsU0FBUyxFQUFFO29CQUNUO3dCQUNFLElBQUksRUFBRSxtQkFBbUI7cUJBQzFCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFdkUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFO1FBQy9DLE1BQU0sTUFBTSxHQUF1QjtZQUNqQztnQkFDRSxXQUFXLEVBQUUsQ0FBQztnQkFDZCxJQUFJLEVBQUUsY0FBYztnQkFDcEIsV0FBVyxFQUFFLENBQUM7Z0JBQ2QsU0FBUyxFQUFFO29CQUNUO3dCQUNFLElBQUksRUFBRSxTQUFTO3FCQUNoQjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsVUFBVTt3QkFDaEIsY0FBYyxFQUFFLElBQUk7cUJBQ3JCO2lCQUNGO2FBQ0Y7WUFDRDtnQkFDRSxXQUFXLEVBQUUsQ0FBQztnQkFDZCxJQUFJLEVBQUUsY0FBYztnQkFDcEIsV0FBVyxFQUFFLEVBQUU7Z0JBQ2YsU0FBUyxFQUFFO29CQUNUO3dCQUNFLElBQUksRUFBRSxtQkFBbUI7cUJBQzFCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFdkUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9