diff --git a/backend/workers/createRecurringEvents.js b/backend/workers/createRecurringEvents.js index ec5fdce6..b6492235 100644 --- a/backend/workers/createRecurringEvents.js +++ b/backend/workers/createRecurringEvents.js @@ -1,3 +1,5 @@ +const generateEventData = require('./lib/generateEventData'); + module.exports = (cron, fetch) => { // Check to see if any recurring events are happening today, diff --git a/backend/workers/lib/generateEventData.js b/backend/workers/lib/generateEventData.js index 7b7dc28c..aac3bc96 100644 --- a/backend/workers/lib/generateEventData.js +++ b/backend/workers/lib/generateEventData.js @@ -1,37 +1,22 @@ -// grab the updatedDate -// get the timeZone offset -// if timeZone offset differs from the updatedDate to now -// normalize time to the updatedDate - function generateEventData(eventObj, TODAY_DATE = new Date()) { /** * Generates event data based on the provided event object and date. * In the cron job this function normally runs in, it is expected that eventObj.date is the same as TODAY_DATE. */ - - const oldStartTime = new Date(eventObj.startTime); + const eventDate = new Date(eventObj.startTime); // Create new event - const oldHours = oldStartTime.getHours(); - const oldMinutes = oldStartTime.getMinutes(); - const oldSeconds = oldStartTime.getSeconds(); - const oldMilliseconds = oldStartTime.getMilliseconds(); + const hours = eventDate.getHours(); + const minutes = eventDate.getMinutes(); + const seconds = eventDate.getSeconds(); + const milliseconds = eventDate.getMilliseconds(); - const newYear = TODAY_DATE.getFullYear(); - const newMonth = TODAY_DATE.getMonth(); - const newDate = TODAY_DATE.getDate(); - - const oldTz = oldStartTime.getTimezoneOffset(); - const newTz = TODAY_DATE.getTimezoneOffset(); - const tzDiff = oldTz - newTz; + const yearToday = TODAY_DATE.getFullYear(); + const monthToday = TODAY_DATE.getMonth(); + const dateToday = TODAY_DATE.getDate(); - const newEventDate = new Date(newYear, newMonth, newDate, oldHours, oldMinutes, oldSeconds, oldMilliseconds); + const newEventDate = new Date(yearToday, monthToday, dateToday, hours, minutes, seconds, milliseconds); - const newEndTime = new Date(newYear, newMonth, newDate, oldHours + eventObj.hours, oldMinutes, oldSeconds, oldMilliseconds) - - if (tzDiff != 0) { - newEventDate.setMinutes(newEventDate.getMinutes() + tzDiff) - newEndTime.setMinutes(newEndTime.getMinutes() + tzDiff) - } + const newEndTime = new Date(yearToday, monthToday, dateToday, hours + eventObj.hours, minutes, seconds, milliseconds) const eventToCreate = { name: eventObj.name && eventObj.name, diff --git a/backend/workers/lib/generateEventData.test.js b/backend/workers/lib/generateEventData.test.js deleted file mode 100644 index a63c77d2..00000000 --- a/backend/workers/lib/generateEventData.test.js +++ /dev/null @@ -1,97 +0,0 @@ -const { generateEventData } = require('./generateEventData.js'); - -describe('generateEventData', () => { - test("generateEventData fn() generates expected startTime", () => { - const testDate = new Date('2024-02-07T10:00:00.000Z') - const testDate2nd = new Date('2024-02-07T10:00:00.000Z') - - const mockData = { - name: 'Test Event', - date: new Date('2024-02-07T10:00:00.000Z'), - startTime: new Date('2024-02-07T10:00:00.000Z'), - endTime: new Date(testDate2nd.setHours(testDate2nd.getHours() + 3)), - updatedDate: testDate, - hours: 3, - }; - - const result = generateEventData(mockData, testDate); - - // expect(result.startTime).toEqual(new Date('2024-02-07T12:00:00')); - expect(result.startTime).toEqual(mockData.startTime); - }); - - test("generateEventData fn() generates expected endTime (startTime + hours)", () => { - const testDate = new Date('2024-02-07T10:00:00.000Z') - const testDate2nd = new Date('2024-02-07T10:00:00.000Z') - - const mockData = { - eventType: 'Workshop', - date: testDate, - startTime: new Date('2024-02-07T10:00:00.000Z'), - endTime: new Date(testDate2nd.setHours(testDate2nd.getHours() + 3)), - updatedDate: testDate, - hours: 3, - }; - - const result = generateEventData(mockData, testDate); - expect(result.endTime).toEqual(mockData.endTime); - }); - - test("generateEventData fn() creates proper times with data lifted from dev.db", () => { - const devDbData = { - date: "2023-03-23T03:00:00.706Z", - startTime: "2023-03-23T03:00:00.706Z", - endTime: "2023-03-23T04:00:00.706Z", - hours: 1, - createdDate: "2023-03-23T01:26:30.706Z", - updatedDate: "2023-03-23T01:26:30.706Z", - } - - const newEndTime = new Date(devDbData.startTime); - - const newEndTimePlusHours = new Date(newEndTime.setHours(newEndTime.getHours() + devDbData.hours)) - const result = generateEventData(devDbData, new Date(devDbData.startTime)); - expect(result.endTime).toEqual(newEndTimePlusHours); - }); - - test("Creates new time step with respect to daylight savings", () => { - const devDbData = { - date: "2023-03-23T03:00:00.706Z", - startTime: "2023-03-23T03:00:00.706Z", - endTime: "2023-03-23T04:00:00.706Z", - hours: 1, - createdDate: "2023-03-23T01:26:30.706Z", - updatedDate: "2023-03-23T01:26:30.706Z", - } - - const newStartTime = new Date("2023-11-23T03:00:00.706Z"); - const newEndTime = new Date("2023-11-23T03:00:00.706Z"); - newEndTime.setHours(newStartTime.getHours() + 1) - - const result = generateEventData(devDbData, newStartTime); - - expect(result.startTime).toEqual(newStartTime); - expect(result.endTime).toEqual(newEndTime); - }); - - test("Creates new time step with respect to daylight savings", () => { - const devDbData = { - date: "2024-02-23T03:00:00.706Z", - startTime: "2024-02-23T03:00:00.706Z", - endTime: "2024-02-23T04:00:00.706Z", - hours: 1, - createdDate: "2023-03-23T01:26:30.706Z", - updatedDate: "2024-02-23T04:00:00.706Z", - } - - const newStartTime = new Date("2024-04-23T03:00:00.706Z"); - const newEndTime = new Date("2024-04-23T03:00:00.706Z"); - newEndTime.setHours(newStartTime.getHours() + 1) - - const result = generateEventData(devDbData, newStartTime); - - expect(result.startTime).toEqual(newStartTime); - expect(result.endTime).toEqual(newEndTime); - }); - -}) \ No newline at end of file diff --git a/client/src/components/user-admin/UserManagement.js b/client/src/components/user-admin/UserManagement.js index 5702371d..e3681928 100644 --- a/client/src/components/user-admin/UserManagement.js +++ b/client/src/components/user-admin/UserManagement.js @@ -144,12 +144,12 @@ const UserManagement = ({ users, setUserToEdit }) => { - + */}