diff --git a/scrapers/nus-v2/src/tasks/GetSemesterTimetable.test.ts b/scrapers/nus-v2/src/tasks/GetSemesterTimetable.test.ts index f40ada61be..4b574c248a 100644 --- a/scrapers/nus-v2/src/tasks/GetSemesterTimetable.test.ts +++ b/scrapers/nus-v2/src/tasks/GetSemesterTimetable.test.ts @@ -1611,6 +1611,117 @@ Object { }, ], } +`); + }); + + // Lessons with E-Learn_* in venue should have E-Learning as venue + test('should save venue of lessons with E-Learning venues correctly', async () => { + const task = createTask( + CS4238Timetable.map((lesson) => { + return { ...lesson, room: 'E-Learn_C' }; + }), + ); + const timetable = await task.run(); + + expect(timetable.CS4238).toMatchInlineSnapshot(` +Array [ + Object { + "classNo": "1", + "day": "Monday", + "endTime": "2030", + "lessonType": "Lecture", + "size": 40, + "startTime": "1830", + "venue": "E-Learning", + "weeks": Array [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + ], + }, + Object { + "classNo": "2", + "day": "Tuesday", + "endTime": "2030", + "lessonType": "Lecture", + "size": 40, + "startTime": "1830", + "venue": "E-Learning", + "weeks": Array [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + ], + }, + Object { + "classNo": "2", + "day": "Tuesday", + "endTime": "2130", + "lessonType": "Laboratory", + "size": 40, + "startTime": "2030", + "venue": "E-Learning", + "weeks": Array [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + ], + }, + Object { + "classNo": "1", + "day": "Monday", + "endTime": "2130", + "lessonType": "Laboratory", + "size": 40, + "startTime": "2030", + "venue": "E-Learning", + "weeks": Array [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + ], + }, +] `); }); }); diff --git a/scrapers/nus-v2/src/tasks/GetSemesterTimetable.ts b/scrapers/nus-v2/src/tasks/GetSemesterTimetable.ts index 92d6526b7c..2d1cb019de 100644 --- a/scrapers/nus-v2/src/tasks/GetSemesterTimetable.ts +++ b/scrapers/nus-v2/src/tasks/GetSemesterTimetable.ts @@ -111,7 +111,20 @@ export function transformModgrpToClassNo(modgrp: string, activity: string): stri } export function mapTimetableLesson(lesson: TimetableLesson, logger: Logger): TempRawLesson { - const { room, start_time, end_time, day, module, modgrp, activity, eventdate, csize } = lesson; + const { + room: providedRoom, + start_time, + end_time, + day, + module, + modgrp, + activity, + eventdate, + csize, + } = lesson; + + // Save E-Learn_* venues as E-Learning + const room = providedRoom?.startsWith('E-Learn_') ? 'E-Learning' : providedRoom; if (has(unrecognizedLessonTypes, activity)) { logger.warn( diff --git a/scrapers/nus-v2/tsconfig.json b/scrapers/nus-v2/tsconfig.json index 68c3eca705..495266a558 100644 --- a/scrapers/nus-v2/tsconfig.json +++ b/scrapers/nus-v2/tsconfig.json @@ -1,7 +1,8 @@ { "compilerOptions": { "outDir": "build", - "target": "es2020", + "target": "es2018", + "lib": ["dom", "es2020"], "module": "commonjs", "baseUrl": "./src", "resolveJsonModule": true,