@technobuddha/library
Version:
A large library of useful functions
88 lines (83 loc) • 3.28 kB
text/typescript
import { beginningOfWeek } from './beginning-of-week.ts';
import { month } from './date.ts';
describe('beginningOfWeek', () => {
test('should find the beginning of the week', () => {
expect(beginningOfWeek(new Date('20 Jul 1969 20:18')).toString()).toBe(
new Date('20 Jul 1969').toString(),
);
});
test('should accept alternate start of week', () => {
expect(beginningOfWeek(new Date('20 Jul 1969 20:18'), { firstDayOfWeek: 0 }).toString()).toBe(
new Date('20 Jul 1969').toString(),
);
expect(beginningOfWeek(new Date('20 Jul 1969 20:18'), { firstDayOfWeek: 1 }).toString()).toBe(
new Date('14 Jul 1969').toString(),
);
expect(beginningOfWeek(new Date('20 Jul 1969 20:18'), { firstDayOfWeek: 2 }).toString()).toBe(
new Date('15 Jul 1969').toString(),
);
expect(beginningOfWeek(new Date('20 Jul 1969 20:18'), { firstDayOfWeek: 3 }).toString()).toBe(
new Date('16 Jul 1969').toString(),
);
expect(beginningOfWeek(new Date('20 Jul 1969 20:18'), { firstDayOfWeek: 4 }).toString()).toBe(
new Date('17 Jul 1969').toString(),
);
expect(beginningOfWeek(new Date('20 Jul 1969 20:18'), { firstDayOfWeek: 5 }).toString()).toBe(
new Date('18 Jul 1969').toString(),
);
expect(beginningOfWeek(new Date('20 Jul 1969 20:18'), { firstDayOfWeek: 6 }).toString()).toBe(
new Date('19 Jul 1969').toString(),
);
});
test('should find the utc beginning of the week', () => {
expect(
beginningOfWeek(new Date(Date.UTC(1969, month.july, 20, 20, 18)), {
utc: true,
}).toString(),
).toBe(new Date(Date.UTC(1969, month.july, 20)).toString());
});
test('should accept alternate start of week with utc', () => {
expect(
beginningOfWeek(new Date(Date.UTC(1969, month.july, 20, 20, 18)), {
utc: true,
firstDayOfWeek: 0,
}).toString(),
).toBe(new Date(Date.UTC(1969, month.july, 20)).toString());
expect(
beginningOfWeek(new Date(Date.UTC(1969, month.july, 20, 20, 18)), {
utc: true,
firstDayOfWeek: 1,
}).toString(),
).toBe(new Date(Date.UTC(1969, month.july, 14)).toString());
expect(
beginningOfWeek(new Date(Date.UTC(1969, month.july, 20, 20, 18)), {
utc: true,
firstDayOfWeek: 2,
}).toString(),
).toBe(new Date(Date.UTC(1969, month.july, 15)).toString());
expect(
beginningOfWeek(new Date(Date.UTC(1969, month.july, 20, 20, 18)), {
utc: true,
firstDayOfWeek: 3,
}).toString(),
).toBe(new Date(Date.UTC(1969, month.july, 16)).toString());
expect(
beginningOfWeek(new Date(Date.UTC(1969, month.july, 20, 20, 18)), {
utc: true,
firstDayOfWeek: 4,
}).toString(),
).toBe(new Date(Date.UTC(1969, month.july, 17)).toString());
expect(
beginningOfWeek(new Date(Date.UTC(1969, month.july, 20, 20, 18)), {
utc: true,
firstDayOfWeek: 5,
}).toString(),
).toBe(new Date(Date.UTC(1969, month.july, 18)).toString());
expect(
beginningOfWeek(new Date(Date.UTC(1969, month.july, 20, 20, 18)), {
utc: true,
firstDayOfWeek: 6,
}).toString(),
).toBe(new Date(Date.UTC(1969, month.july, 19)).toString());
});
});