feat: parse offered courses descriptions
This commit is contained in:
@@ -4,9 +4,11 @@ const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
const { parseStudyLoadTable } = require('../parsers.js');
|
||||
const { parseProfilePage } = require('../parsers.js');
|
||||
const { parseOfferedCourses } = require('../parsers.js');
|
||||
|
||||
const fixture = fs.readFileSync(path.join(__dirname, 'fixtures', 'study-load-table.html'), 'utf8');
|
||||
const profileFixture = fs.readFileSync(path.join(__dirname, 'fixtures', 'profile.html'), 'utf8');
|
||||
const offeredFixture = fs.readFileSync(path.join(__dirname, 'fixtures', 'offered-courses.html'), 'utf8');
|
||||
|
||||
test('parseStudyLoadTable extracts all course rows', () => {
|
||||
const rows = parseStudyLoadTable(fixture);
|
||||
@@ -57,3 +59,15 @@ test('parseProfilePage degrades gracefully on empty input', () => {
|
||||
const p = parseProfilePage('');
|
||||
assert.deepStrictEqual(p, {});
|
||||
});
|
||||
|
||||
test('parseOfferedCourses extracts course code and description', () => {
|
||||
const courses = parseOfferedCourses(offeredFixture);
|
||||
const it3206 = courses.find(c => c.courseCode === 'IT 3206');
|
||||
assert.ok(it3206, 'should find IT 3206');
|
||||
assert.strictEqual(it3206.description, 'INTEGRATIVE PROGRAMMING AND TECHNOLOGY');
|
||||
});
|
||||
|
||||
test('parseOfferedCourses strips group suffix from code', () => {
|
||||
const courses = parseOfferedCourses(offeredFixture);
|
||||
assert.ok(courses.every(c => !/Group/.test(c.courseCode)));
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user