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);
});