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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
| import test from "ava";
| import {Calendar} from "../../src/lib/calendar-v2.js";
|
| test("Calendar: first day of week start as defined", t =>{
| let firstDayOfWeek = 1;
| Calendar.firstDayOfWeek = firstDayOfWeek;
| let cal = Calendar.buildCalendar(1, 1970);
| let expectedWeekDays = [1, 2, 3, 4, 5, 6, 0];
| t.deepEqual(cal.weekDays, expectedWeekDays);
| t.is(firstDayOfWeek, Calendar.firstDayOfWeek);
| });
|
| test("Calendar: first week contains correct number of spaces", t =>{
| console.log("Calendar: first week contains correct number of spaces");
| let firstDayOfWeek = 1;
| Calendar.firstDayOfWeek = firstDayOfWeek;
| let cal = Calendar.buildCalendar(1, 1970);
| let firstWeek = cal.weeks[0];
| let expectedFirstWeek = ['', '', '', 1, 2, 3, 4];
| t.deepEqual(firstWeek, expectedFirstWeek);
| });
|
| test("Calendar: Test Jan. 2021, America Format", t=>{
| Calendar.firstDayOfWeek = 0;
|
| let cal = Calendar.buildCalendar(1, 2021);
| let expectedCal = {
| month: 1,
| year: 2021,
| weekDays: [0, 1, 2, 3, 4, 5, 6],
| weeks: [
| ['', '', '', '','', 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]
| ]
| };
| t.deepEqual(cal, expectedCal);
| });
|
| test("Calendar: buildCalendar.apply() is a valid call", t=>{
| Calendar.firstDayOfWeek = 0;
|
| let cal = Calendar.buildCalendar.apply(undefined, [1, 2021]);
| let expectedCal = {
| month: 1,
| year: 2021,
| weekDays: [0, 1, 2, 3, 4, 5, 6],
| weeks: [
| ['', '', '', '','', 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]
| ]
| };
| t.deepEqual(cal, expectedCal);
| });
|
| test("Calendar: buildCalendar.call() is a valid call", t=>{
| Calendar.firstDayOfWeek = 0;
|
| let cal = Calendar.buildCalendar.call(undefined, 1, 2021);
| let expectedCal = {
| month: 1,
| year: 2021,
| weekDays: [0, 1, 2, 3, 4, 5, 6],
| weeks: [
| ['', '', '', '','', 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]
| ]
| };
| t.deepEqual(cal, expectedCal);
| });
|
|
| test("Calendar: first day is a Sunday, months start with Monday", t => {
| Calendar.firstDayOfWeek = 1;
| let cal = Calendar.buildCalendar(5, 2022);
| let expectedCal = {
| month:5,
| year:2022,
| weekDays:[1,2,3,4,5,6,0],
| weeks:[
| ["","","","","","", 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]
| ]
| };
| t.deepEqual(cal, expectedCal);
| });
|
| test("Calendar: do not append empty week", t=>{
| Calendar.firstDayOfWeek = 1;
| let cal = Calendar.buildCalendar(10, 2021);
| let expectedCal = {
| month: 10,
| year: 2021,
| weekDays:[1,2,3,4,5,6,0],
| weeks:[
| ["","","","", 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]/*next week will be empty, so do not append it*/
| ]
| };
| t.deepEqual(cal, expectedCal);
| });
|
|