Added remaining tests

This commit is contained in:
Arnaud Vergnet 2020-03-22 16:05:28 +01:00
parent bf0c81166c
commit 667ceb0e71
4 changed files with 102 additions and 6 deletions

5
.gitignore vendored
View file

@ -10,6 +10,9 @@ web-build/
web-report/ web-report/
/.expo-shared/ /.expo-shared/
/coverage/ /coverage/
/.idea/
/package-lock.json /package-lock.json
/passwords.json /passwords.json
!/.idea/
/.idea/*
!/.idea/runConfigurations

View file

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

View file

@ -24,7 +24,7 @@ export default class PlanningEventManager {
* @return {string} The string representation * @return {string} The string representation
*/ */
static getCurrentDateString(): string { static getCurrentDateString(): string {
return PlanningEventManager.dateToString(new Date()); return PlanningEventManager.dateToString(new Date(Date.now()));
} }
/** /**
@ -180,9 +180,10 @@ export default class PlanningEventManager {
* @return {Object} * @return {Object}
*/ */
static generateEmptyCalendar(numberOfMonths: number): Object { static generateEmptyCalendar(numberOfMonths: number): Object {
const end = new Date(new Date().setMonth(new Date().getMonth() + numberOfMonths + 1)); let end = new Date(Date.now());
end.setMonth(end.getMonth() + numberOfMonths);
let daysOfYear = {}; let daysOfYear = {};
for (let d = new Date(); d <= end; d.setDate(d.getDate() + 1)) { for (let d = new Date(Date.now()); d <= end; d.setDate(d.getDate() + 1)) {
const dateString = PlanningEventManager.getDateOnlyString( const dateString = PlanningEventManager.getDateOnlyString(
PlanningEventManager.dateToString(new Date(d))); PlanningEventManager.dateToString(new Date(d)));
if (dateString !== null) if (dateString !== null)
@ -229,7 +230,7 @@ export default class PlanningEventManager {
eventArray.push(event); eventArray.push(event);
else { else {
for (let i = 0; i < eventArray.length; i++) { for (let i = 0; i < eventArray.length; i++) {
if (PlanningEventManager.isEventBefore(event.date_begin, eventArray[i].date_end)) { if (PlanningEventManager.isEventBefore(event.date_begin, eventArray[i].date_begin)) {
eventArray.splice(i, 0, event); eventArray.splice(i, 0, event);
break; break;
} else if (i === eventArray.length - 1) { } else if (i === eventArray.length - 1) {

View file

@ -94,6 +94,8 @@ test('isEventBefore', () => {
expect(PlanningEventManager.isEventBefore( expect(PlanningEventManager.isEventBefore(
"2020-03-21 10:15", "2020-03-30 10:15")).toBeTrue(); "2020-03-21 10:15", "2020-03-30 10:15")).toBeTrue();
expect(PlanningEventManager.isEventBefore(
"2020-03-21 10:00", "2020-03-21 10:00")).toBeFalse();
expect(PlanningEventManager.isEventBefore( expect(PlanningEventManager.isEventBefore(
"2020-03-21 10:00", "2020-03-21 09:00")).toBeFalse(); "2020-03-21 10:00", "2020-03-21 09:00")).toBeFalse();
expect(PlanningEventManager.isEventBefore( expect(PlanningEventManager.isEventBefore(
@ -125,6 +127,84 @@ test('dateToString', () => {
}); });
test('generateEmptyCalendar', () => { test('generateEmptyCalendar', () => {
jest.spyOn(Date, 'now')
.mockImplementation(() =>
new Date('2020-01-14T00:00:00.000Z').getTime()
);
let calendar = PlanningEventManager.generateEmptyCalendar(1);
expect(calendar).toHaveProperty("2020-01-14");
expect(calendar).toHaveProperty("2020-01-20");
expect(calendar).toHaveProperty("2020-02-10");
expect(Object.keys(calendar).length).toBe(32);
calendar = PlanningEventManager.generateEmptyCalendar(3);
expect(calendar).toHaveProperty("2020-01-14");
expect(calendar).toHaveProperty("2020-01-20");
expect(calendar).toHaveProperty("2020-02-10");
expect(calendar).toHaveProperty("2020-02-14");
expect(calendar).toHaveProperty("2020-03-20");
expect(calendar).toHaveProperty("2020-04-12");
expect(Object.keys(calendar).length).toBe(92);
}); });
test('pushEventInOrder', () => {
let eventArray = [];
let event1 = {date_begin: "2020-01-14 09:15"};
PlanningEventManager.pushEventInOrder(eventArray, event1);
expect(eventArray.length).toBe(1);
expect(eventArray[0]).toBe(event1);
let event2 = {date_begin: "2020-01-14 10:15"};
PlanningEventManager.pushEventInOrder(eventArray, event2);
expect(eventArray.length).toBe(2);
expect(eventArray[0]).toBe(event1);
expect(eventArray[1]).toBe(event2);
let event3 = {date_begin: "2020-01-14 10:15", title: "garbage"};
PlanningEventManager.pushEventInOrder(eventArray, event3);
expect(eventArray.length).toBe(3);
expect(eventArray[0]).toBe(event1);
expect(eventArray[1]).toBe(event2);
expect(eventArray[2]).toBe(event3);
let event4 = {date_begin: "2020-01-13 09:00"};
PlanningEventManager.pushEventInOrder(eventArray, event4);
expect(eventArray.length).toBe(4);
expect(eventArray[0]).toBe(event4);
expect(eventArray[1]).toBe(event1);
expect(eventArray[2]).toBe(event2);
expect(eventArray[3]).toBe(event3);
});
test('generateEventAgenda', () => {
jest.spyOn(Date, 'now')
.mockImplementation(() =>
new Date('2020-01-14T00:00:00.000Z').getTime()
);
let eventList = [
{date_begin: "2020-01-14 09:15"},
{date_begin: "2020-02-01 09:15"},
{date_begin: "2020-01-15 09:15"},
{date_begin: "2020-02-01 09:30"},
{date_begin: "2020-02-01 08:30"},
];
const calendar = PlanningEventManager.generateEventAgenda(eventList, 2);
expect(calendar["2020-01-14"].length).toBe(1);
expect(calendar["2020-01-14"][0]).toBe(eventList[0]);
expect(calendar["2020-01-15"].length).toBe(1);
expect(calendar["2020-01-15"][0]).toBe(eventList[2]);
expect(calendar["2020-02-01"].length).toBe(3);
expect(calendar["2020-02-01"][0]).toBe(eventList[4]);
expect(calendar["2020-02-01"][1]).toBe(eventList[1]);
expect(calendar["2020-02-01"][2]).toBe(eventList[3]);
});
test('getCurrentDateString', () => {
jest.spyOn(Date, 'now')
.mockImplementation(() => {
let date = new Date();
date.setFullYear(2020, 0, 14);
date.setHours(15, 30, 54, 65);
return date.getTime();
});
expect(PlanningEventManager.getCurrentDateString()).toBe('2020-01-14 15:30');
});