From 544d4aab1a0c2b0282ec1cbcb5ac05b6c9397372 Mon Sep 17 00:00:00 2001 From: Adrian Bonpin Date: Tue, 18 Aug 2026 15:35:08 +0800 Subject: [PATCH] fix: robust group-suffix stripping in parseOfferedCourses --- parsers.js | 2 +- test/parsers.test.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/parsers.js b/parsers.js index 6e2cdce..15c1a7d 100644 --- a/parsers.js +++ b/parsers.js @@ -76,7 +76,7 @@ return extractRows(html) .filter((tds) => tds.length >= 2) .map((tds) => ({ - courseCode: tds[0].split('-')[0].trim(), + courseCode: tds[0].replace(/\s*-\s*Group\s*\d+$/i, '').trim(), description: tds[1] })); } diff --git a/test/parsers.test.js b/test/parsers.test.js index 2cfa0e3..340277f 100644 --- a/test/parsers.test.js +++ b/test/parsers.test.js @@ -70,4 +70,6 @@ test('parseOfferedCourses extracts course code and description', () => { test('parseOfferedCourses strips group suffix from code', () => { const courses = parseOfferedCourses(offeredFixture); assert.ok(courses.every(c => !/Group/.test(c.courseCode))); + const it3206n = courses.find(c => c.courseCode === 'IT 3206N'); + assert.ok(it3206n, 'should find IT 3206N'); });