UNPKG

7.78 kBJavaScriptView Raw
1const assert = require('chai');
2const ScheduleCalculationService = require('../ScheduleCalculationService');
3const moment = require('moment');
4const Frequency = {
5 DAILY: 0,
6 WEEKLY: 1,
7 BIWEEKLY: 2,
8 MONTHLY: 3,
9 QUARTERLY: 4,
10 HALFYEARLY: 5,
11 ANNUALLY: 6
12}
13describe('scheduleCalculationServiceTest', function() {
14 it('should return next day of current date', function() {
15 //Arrage
16
17 let startDate = moment("2019-01-02");
18 let currentDate = moment("2019-09-30").toISOString();
19 let includeCurrentDate = true;
20 let frequencyParam = "Sun";
21 //Act
22 let nextDate = moment(ScheduleCalculationService.getNextDate(startDate, currentDate, Frequency.DAILY, frequencyParam, includeCurrentDate)).format("YYYY-MM-DD").toString();
23 console.log("nextDate", nextDate)
24
25 //Assert
26 assert.expect(nextDate, "date are equal").to.equal("2019-10-01");
27 });
28 it('should return current date if ', function() {
29 //Arrage
30 let startDate = moment("2019-01-02");
31 let currentDate = moment().toISOString();
32 let includeCurrentDate = false;
33 let frequencyParam = "Sunday";
34 //Act
35 let nextDate = ScheduleCalculationService.getNextDate(startDate, currentDate, Frequency.DAILY, frequencyParam, includeCurrentDate);
36 console.log(nextDate)
37
38 //Assert
39 assert.expect(moment(nextDate).date(), "date are equal").to.equal(moment().date());
40 assert.expect(moment(nextDate).month(), "month are equal").to.equal(moment().month());
41 assert.expect(moment(nextDate).year(), "year are equal").to.equal(moment().year());
42 });
43
44 it('should return current date if ', function() {
45 //Arrage
46 let startDate = moment("2019-01-02");
47 let currentDate = moment().toISOString();
48 let includeCurrentDate = false;
49 let frequencyParam = "Sunday";
50 //Act
51 let nextDate = ScheduleCalculationService.getNextDate(startDate, currentDate, Frequency.DAILY, frequencyParam, includeCurrentDate);
52 // console.log(nextDate)
53
54 //Assert
55 assert.expect(moment(nextDate).date(), "date are equal").to.equal(moment().date());
56 assert.expect(moment(nextDate).month(), "month are equal").to.equal(moment().month());
57 assert.expect(moment(nextDate).year(), "year are equal").to.equal(moment().year());
58 });
59
60 it('should return current week next sunday date', function() {
61 //Arrage
62 let startDate = moment("2019-01-02").toISOString();
63 let currentDate = moment("2019-09-26").toISOString();
64 let includeCurrentDate = true;
65 let frequencyParam = "Sunday";
66
67 //Act
68 let nextDate = moment(ScheduleCalculationService.getNextDate(startDate, currentDate, Frequency.WEEKLY, frequencyParam, includeCurrentDate)).format("YYYY-MM-DD").toString();
69 console.log("nextDate", moment(nextDate).format("YYYY-MM-DD"))
70
71 //Assert
72 assert.expect(nextDate, "date are equal").to.equal("2019-09-29");
73 })
74
75 it('should return current week next sunday date', function() {
76 //Arrage
77 let startDate = moment("2019-01-02").toISOString();
78 let currentDate = moment("2019-09-20").toISOString();
79 let includeCurrentDate = true;
80 let frequencyParam = "Sunday";
81
82 //Act
83 let nextDate = moment(ScheduleCalculationService.getNextDate(startDate, currentDate, Frequency.WEEKLY, frequencyParam, includeCurrentDate)).format("YYYY-MM-DD").toString();
84 console.log("nextDate", moment(nextDate).format("YYYY-MM-DD"))
85
86 //Assert
87 assert.expect(nextDate, "date are equal").to.equal("2019-09-22");
88 })
89
90
91 it('should return next date month 5', function() {
92 //Arrage
93 let startDate = moment("2019-01-01").toISOString();
94 let currentDate = moment("2019-10-05").toISOString();
95 let includeCurrentDate = true;
96 let frequencyParam = 5;
97
98 //Act
99 let nextDate = moment(ScheduleCalculationService.getNextDate(startDate, currentDate, Frequency.MONTHLY, frequencyParam, includeCurrentDate)).format("YYYY-MM-DD").toString();
100 console.log("nextDate", moment(nextDate).format("YYYY-MM-DD"))
101
102 //Assert
103 assert.expect(nextDate, "date are equal").to.equal("2019-10-05");
104 })
105
106 it('should return next date month last', function() {
107 //Arrage
108 let startDate = moment("2019-01-01").toISOString();
109 let currentDate = moment("2019-10-05").toISOString();
110 let includeCurrentDate = true;
111 let frequencyParam = "Last";
112
113 //Act
114 let nextDate = moment(ScheduleCalculationService.getNextDate(startDate, currentDate, Frequency.MONTHLY, frequencyParam, includeCurrentDate)).format("YYYY-MM-DD").toString();
115 console.log("nextDate", moment(nextDate).format("YYYY-MM-DD"))
116
117 //Assert
118 assert.expect(nextDate, "date are equal").to.equal("2019-10-31");
119 })
120
121
122 it('should return next date BiWeekly week after week date on sunday', function() {
123 //Arrage
124 let startDate = moment("2019-01-02").toISOString();
125 let currentDate = moment("2019-09-18").toISOString()
126 let includeCurrentDate = false;
127 let frequencyParam = "Sunday";
128
129 //Act
130 let nextDate = moment(ScheduleCalculationService.getNextDate(startDate, currentDate, Frequency.BIWEEKLY, frequencyParam, includeCurrentDate)).format("YYYY-MM-DD").toString();
131 console.log("nextDate", moment(nextDate).format("YYYY-MM-DD"))
132
133 //Assert
134 assert.expect(nextDate, "date are equal").to.equal("2019-09-29");
135 })
136
137 it('should return next date QUARTERLY month', function() {
138 //Arrage
139 let startDate = moment("2019-01-01").toISOString();
140 let currentDate = moment("2019-01-18").toISOString()
141 let includeCurrentDate = false;
142 let frequencyParam = "Sunday";
143
144 //Act
145 let nextDate = moment(ScheduleCalculationService.getNextDate(startDate, currentDate, Frequency.QUARTERLY, frequencyParam, includeCurrentDate)).format("YYYY-MM-DD").toString();
146 console.log("nextDate", moment(nextDate).format("YYYY-MM-DD"))
147
148 //Assert
149 assert.expect(nextDate, "date are equal").to.equal("2019-04-01");
150 })
151 it('should return next date HALFYEARLY', function() {
152 //Arrage
153 let startDate = moment("2019-01-01").toISOString();
154 let currentDate = moment("2019-01-18").toISOString()
155 let includeCurrentDate = false;
156 let frequencyParam = "Sunday";
157
158 //Act
159 let nextDate = moment(ScheduleCalculationService.getNextDate(startDate, currentDate, Frequency.HALFYEARLY, frequencyParam, includeCurrentDate)).format("YYYY-MM-DD").toString();
160 console.log("nextDate", moment(nextDate).format("YYYY-MM-DD"))
161
162 //Assert
163 assert.expect(nextDate, "date are equal").to.equal("2019-07-01");
164 })
165
166 it('should return next date ANNUALLY', function() {
167 //Arrage
168 let startDate = moment("2019-01-01").toISOString();
169 let currentDate = moment("2020-01-18").toISOString()
170 let includeCurrentDate = false;
171 let frequencyParam = "Sunday";
172
173 //Act
174 let nextDate = moment(ScheduleCalculationService.getNextDate(startDate, currentDate, Frequency.ANNUALLY, frequencyParam, includeCurrentDate)).format("YYYY-MM-DD").toString();
175 console.log("nextDate", moment(nextDate).format("YYYY-MM-DD"))
176
177 //Assert
178 assert.expect(nextDate, "date are equal").to.equal("2021-01-01");
179 })
180})
\No newline at end of file