Browse Source

Added remaining tests

Arnaud Vergnet 4 years ago
parent
commit
667ceb0e71

+ 4
- 1
.gitignore View File

@@ -10,6 +10,9 @@ web-build/
10 10
 web-report/
11 11
 /.expo-shared/
12 12
 /coverage/
13
-/.idea/
14 13
 /package-lock.json
15 14
 /passwords.json
15
+
16
+!/.idea/
17
+/.idea/*
18
+!/.idea/runConfigurations

+ 12
- 0
.idea/runConfigurations/All_Tests__coverage_.xml View File

@@ -0,0 +1,12 @@
1
+<component name="ProjectRunConfigurationManager">
2
+  <configuration default="false" name="All Tests (coverage)" type="JavaScriptTestRunnerJest">
3
+    <node-interpreter value="project" />
4
+    <node-options value="" />
5
+    <jest-package value="$PROJECT_DIR$/node_modules/jest" />
6
+    <working-dir value="$PROJECT_DIR$" />
7
+    <jest-options value="--coverage" />
8
+    <envs />
9
+    <scope-kind value="ALL" />
10
+    <method v="2" />
11
+  </configuration>
12
+</component>

+ 5
- 4
utils/PlanningEventManager.js View File

@@ -24,7 +24,7 @@ export default class PlanningEventManager {
24 24
      * @return {string} The string representation
25 25
      */
26 26
     static getCurrentDateString(): string {
27
-        return PlanningEventManager.dateToString(new Date());
27
+        return PlanningEventManager.dateToString(new Date(Date.now()));
28 28
     }
29 29
 
30 30
     /**
@@ -180,9 +180,10 @@ export default class PlanningEventManager {
180 180
      * @return {Object}
181 181
      */
182 182
     static generateEmptyCalendar(numberOfMonths: number): Object {
183
-        const end = new Date(new Date().setMonth(new Date().getMonth() + numberOfMonths + 1));
183
+        let end = new Date(Date.now());
184
+        end.setMonth(end.getMonth() + numberOfMonths);
184 185
         let daysOfYear = {};
185
-        for (let d = new Date(); d <= end; d.setDate(d.getDate() + 1)) {
186
+        for (let d = new Date(Date.now()); d <= end; d.setDate(d.getDate() + 1)) {
186 187
             const dateString = PlanningEventManager.getDateOnlyString(
187 188
                 PlanningEventManager.dateToString(new Date(d)));
188 189
             if (dateString !== null)
@@ -229,7 +230,7 @@ export default class PlanningEventManager {
229 230
             eventArray.push(event);
230 231
         else {
231 232
             for (let i = 0; i < eventArray.length; i++) {
232
-                if (PlanningEventManager.isEventBefore(event.date_begin, eventArray[i].date_end)) {
233
+                if (PlanningEventManager.isEventBefore(event.date_begin, eventArray[i].date_begin)) {
233 234
                     eventArray.splice(i, 0, event);
234 235
                     break;
235 236
                 } else if (i === eventArray.length - 1) {

+ 80
- 0
utils/__test__/PlanningEventManager.test.js View File

@@ -95,6 +95,8 @@ test('isEventBefore', () => {
95 95
         "2020-03-21 10:15", "2020-03-30 10:15")).toBeTrue();
96 96
 
97 97
     expect(PlanningEventManager.isEventBefore(
98
+        "2020-03-21 10:00", "2020-03-21 10:00")).toBeFalse();
99
+    expect(PlanningEventManager.isEventBefore(
98 100
         "2020-03-21 10:00", "2020-03-21 09:00")).toBeFalse();
99 101
     expect(PlanningEventManager.isEventBefore(
100 102
         "2020-03-21 10:15", "2020-03-21 10:00")).toBeFalse();
@@ -125,6 +127,84 @@ test('dateToString', () => {
125 127
 });
126 128
 
127 129
 test('generateEmptyCalendar', () => {
130
+    jest.spyOn(Date, 'now')
131
+        .mockImplementation(() =>
132
+            new Date('2020-01-14T00:00:00.000Z').getTime()
133
+        );
134
+    let calendar = PlanningEventManager.generateEmptyCalendar(1);
135
+    expect(calendar).toHaveProperty("2020-01-14");
136
+    expect(calendar).toHaveProperty("2020-01-20");
137
+    expect(calendar).toHaveProperty("2020-02-10");
138
+    expect(Object.keys(calendar).length).toBe(32);
139
+    calendar = PlanningEventManager.generateEmptyCalendar(3);
140
+    expect(calendar).toHaveProperty("2020-01-14");
141
+    expect(calendar).toHaveProperty("2020-01-20");
142
+    expect(calendar).toHaveProperty("2020-02-10");
143
+    expect(calendar).toHaveProperty("2020-02-14");
144
+    expect(calendar).toHaveProperty("2020-03-20");
145
+    expect(calendar).toHaveProperty("2020-04-12");
146
+    expect(Object.keys(calendar).length).toBe(92);
147
+});
148
+
149
+test('pushEventInOrder', () => {
150
+    let eventArray = [];
151
+    let event1 = {date_begin: "2020-01-14 09:15"};
152
+    PlanningEventManager.pushEventInOrder(eventArray, event1);
153
+    expect(eventArray.length).toBe(1);
154
+    expect(eventArray[0]).toBe(event1);
155
+
156
+    let event2 = {date_begin: "2020-01-14 10:15"};
157
+    PlanningEventManager.pushEventInOrder(eventArray, event2);
158
+    expect(eventArray.length).toBe(2);
159
+    expect(eventArray[0]).toBe(event1);
160
+    expect(eventArray[1]).toBe(event2);
128 161
 
162
+    let event3 = {date_begin: "2020-01-14 10:15", title: "garbage"};
163
+    PlanningEventManager.pushEventInOrder(eventArray, event3);
164
+    expect(eventArray.length).toBe(3);
165
+    expect(eventArray[0]).toBe(event1);
166
+    expect(eventArray[1]).toBe(event2);
167
+    expect(eventArray[2]).toBe(event3);
168
+
169
+    let event4 = {date_begin: "2020-01-13 09:00"};
170
+    PlanningEventManager.pushEventInOrder(eventArray, event4);
171
+    expect(eventArray.length).toBe(4);
172
+    expect(eventArray[0]).toBe(event4);
173
+    expect(eventArray[1]).toBe(event1);
174
+    expect(eventArray[2]).toBe(event2);
175
+    expect(eventArray[3]).toBe(event3);
176
+});
177
+
178
+test('generateEventAgenda', () => {
179
+    jest.spyOn(Date, 'now')
180
+        .mockImplementation(() =>
181
+            new Date('2020-01-14T00:00:00.000Z').getTime()
182
+        );
183
+    let eventList = [
184
+        {date_begin: "2020-01-14 09:15"},
185
+        {date_begin: "2020-02-01 09:15"},
186
+        {date_begin: "2020-01-15 09:15"},
187
+        {date_begin: "2020-02-01 09:30"},
188
+        {date_begin: "2020-02-01 08:30"},
189
+    ];
190
+    const calendar = PlanningEventManager.generateEventAgenda(eventList, 2);
191
+    expect(calendar["2020-01-14"].length).toBe(1);
192
+    expect(calendar["2020-01-14"][0]).toBe(eventList[0]);
193
+    expect(calendar["2020-01-15"].length).toBe(1);
194
+    expect(calendar["2020-01-15"][0]).toBe(eventList[2]);
195
+    expect(calendar["2020-02-01"].length).toBe(3);
196
+    expect(calendar["2020-02-01"][0]).toBe(eventList[4]);
197
+    expect(calendar["2020-02-01"][1]).toBe(eventList[1]);
198
+    expect(calendar["2020-02-01"][2]).toBe(eventList[3]);
129 199
 });
130 200
 
201
+test('getCurrentDateString', () => {
202
+    jest.spyOn(Date, 'now')
203
+        .mockImplementation(() => {
204
+            let date = new Date();
205
+            date.setFullYear(2020, 0, 14);
206
+            date.setHours(15, 30, 54, 65);
207
+            return date.getTime();
208
+        });
209
+    expect(PlanningEventManager.getCurrentDateString()).toBe('2020-01-14 15:30');
210
+});

Loading…
Cancel
Save