feat: filter DISSOLVED courses and sum units

This commit is contained in:
adrianbonpin
2026-08-18 19:24:00 +08:00
parent 9f02bebdea
commit d6bacef1ec
2 changed files with 35 additions and 1 deletions
+22
View File
@@ -73,3 +73,25 @@ test('parseOfferedCourses strips group suffix from code', () => {
const it3206n = courses.find(c => c.courseCode === 'IT 3206N');
assert.ok(it3206n, 'should find IT 3206N');
});
const { filterStudyLoadCourses, sumUnits } = require('../parsers.js');
test('filterStudyLoadCourses excludes DISSOLVED courses', () => {
const courses = [
{ courseCode: 'CS 5105', status: 'DISSOLVED', units: '3.00' },
{ courseCode: 'IT 3206', status: 'PARALLEL', units: '3.00' },
{ courseCode: 'IT 4102N', status: 'REGULAR', units: '3.00' }
];
const filtered = filterStudyLoadCourses(courses);
assert.deepStrictEqual(filtered.map((c) => c.courseCode), ['IT 3206', 'IT 4102N']);
});
test('filterStudyLoadCourses handles missing status', () => {
const filtered = filterStudyLoadCourses([{ courseCode: 'X', status: '', units: '1' }]);
assert.strictEqual(filtered.length, 1);
});
test('sumUnits computes total from course units', () => {
const courses = [{ units: '3.00' }, { units: '3.00' }, { units: '2.00' }];
assert.strictEqual(sumUnits(courses), '8.00');
});