File size: 2,707 Bytes
cf86710 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | import { defaultDateLib } from "../classes/DateLib.js";
import type {
DateAfter,
DateBefore,
DateInterval,
DateRange,
DayOfWeek,
} from "../types/index.js";
import {
isDateAfterType,
isDateBeforeType,
isDateInterval,
isDateRange,
isDatesArray,
isDayOfWeekType,
} from "./typeguards.js";
test("isDateInterval return true for valid DateInterval", () => {
const validInterval: DateInterval = { before: new Date(), after: new Date() };
expect(isDateInterval(validInterval)).toBe(true);
});
test("isDateInterval return false for invalid DateInterval", () => {
expect(isDateInterval({})).toBe(false);
expect(isDateInterval(null)).toBe(false);
expect(isDateInterval(undefined)).toBe(false);
});
test("isDateRange return true for valid DateRange", () => {
const validRange: DateRange = { from: new Date() };
expect(isDateRange(validRange)).toBe(true);
});
test("isDateRange return false for invalid DateRange", () => {
expect(isDateRange({})).toBe(false);
expect(isDateRange(null)).toBe(false);
expect(isDateRange(undefined)).toBe(false);
});
test("isDateAfterType return true for valid DateAfter", () => {
const validAfter: DateAfter = { after: new Date() };
expect(isDateAfterType(validAfter)).toBe(true);
});
test("isDateAfterType return false for invalid DateAfter", () => {
expect(isDateAfterType({})).toBe(false);
expect(isDateAfterType(null)).toBe(false);
expect(isDateAfterType(undefined)).toBe(false);
});
test("isDateBeforeType return true for valid DateBefore", () => {
const validBefore: DateBefore = { before: new Date() };
expect(isDateBeforeType(validBefore)).toBe(true);
});
test("isDateBeforeType return false for invalid DateBefore", () => {
expect(isDateBeforeType({})).toBe(false);
expect(isDateBeforeType(null)).toBe(false);
expect(isDateBeforeType(undefined)).toBe(false);
});
test("isDayOfWeekType return true for valid DayOfWeek", () => {
const validDayOfWeek: DayOfWeek = { dayOfWeek: [1] };
expect(isDayOfWeekType(validDayOfWeek)).toBe(true);
});
test("isDayOfWeekType return false for invalid DayOfWeek", () => {
expect(isDayOfWeekType({})).toBe(false);
expect(isDayOfWeekType(null)).toBe(false);
expect(isDayOfWeekType(undefined)).toBe(false);
});
test("isDatesArray return true for valid array of dates", () => {
const validDatesArray: Date[] = [new Date(), new Date()];
expect(isDatesArray(validDatesArray, defaultDateLib)).toBe(true);
});
test("isDatesArray return false for invalid array of dates", () => {
expect(isDatesArray([{}, {}], defaultDateLib)).toBe(false);
expect(isDatesArray(null, defaultDateLib)).toBe(false);
expect(isDatesArray(undefined, defaultDateLib)).toBe(false);
});
|