const { test } = require('node:test'); const assert = require('node:assert'); const fs = require('node:fs'); const path = require('node:path'); const { parseStudyLoadTable } = require('../parsers.js'); const fixture = fs.readFileSync(path.join(__dirname, 'fixtures', 'study-load-table.html'), 'utf8'); test('parseStudyLoadTable extracts all course rows', () => { const rows = parseStudyLoadTable(fixture); assert.strictEqual(rows.length, 5); }); test('parseStudyLoadTable maps columns correctly', () => { const rows = parseStudyLoadTable(fixture); const first = rows[0]; assert.strictEqual(first.group, '1'); assert.strictEqual(first.courseCode, 'CS 5105'); assert.strictEqual(first.units, '3.00'); assert.strictEqual(first.status, 'DISSOLVED'); assert.ok(first.schedule.includes('F 01:30 PM')); }); test('parseStudyLoadTable handles empty faculty', () => { const rows = parseStudyLoadTable(fixture); const it4102 = rows.find(r => r.courseCode === 'IT 4102N'); assert.strictEqual(it4102.faculty, ''); });