fix: import unpublished exam rooms and add opt-in school HTML feedback
This commit is contained in:
@@ -12,6 +12,29 @@ void main() {
|
||||
String fixture() =>
|
||||
File('test/fixtures/school/undergraduate-exams.html').readAsStringSync();
|
||||
final term = SchoolTerm(503, school: SupportedSchool.uestcUndergraduate);
|
||||
test('unpublished room and seat merged by school keep the dated exam', () {
|
||||
final page = fixture().replaceFirst(
|
||||
RegExp(r'<td>示例考场</td>\s*<td>1</td>'),
|
||||
'<td colspan="2">[考试情况尚未发布]</td>',
|
||||
);
|
||||
expect(page, contains('colspan="2"'));
|
||||
final result = UndergraduateExamAdapter.extract(page);
|
||||
expect(result.records, hasLength(4));
|
||||
final record = result.records.first;
|
||||
expect(record.date, '2026-06-22');
|
||||
expect(record.time, contains('14:00-16:00'));
|
||||
expect(record.room, '[考试情况尚未发布]');
|
||||
expect(record.seat, '');
|
||||
expect(record.status, '正常');
|
||||
expect(record.examTypeId, 1);
|
||||
});
|
||||
test('unexpected merged exam columns remain a failed import', () {
|
||||
final page = fixture().replaceFirst(
|
||||
'<td>示例考场</td>',
|
||||
'<td colspan="3">[考试情况尚未发布]</td>',
|
||||
);
|
||||
expect(() => UndergraduateExamAdapter.extract(page), throwsFormatException);
|
||||
});
|
||||
test('actual exam result term wins over the outer default', () {
|
||||
final schedule = UndergraduateExamAdapter.extract(fixture());
|
||||
expect(schedule.termId, '503');
|
||||
@@ -68,17 +91,7 @@ void main() {
|
||||
);
|
||||
test('only recognized explicit empty exam tables are empty success', () {
|
||||
final empty =
|
||||
'<form id="stdExamTableForm"><input name="semester.id" value="503"><input name="examType.id" value="1"></form><table><tr>${[
|
||||
'课程序号',
|
||||
'课程名称',
|
||||
'考试日期',
|
||||
'考试安排',
|
||||
'考试地点',
|
||||
'座位号',
|
||||
'考试情况',
|
||||
'考试类型',
|
||||
'其它说明',
|
||||
].map((s) => '<td>$s</td>').join()}</tr><tr><td colspan="9">暂无考试安排</td></tr></table>';
|
||||
'<form id="stdExamTableForm"><input name="semester.id" value="503"><input name="examType.id" value="1"></form><table><tr>${['课程序号', '课程名称', '考试日期', '考试安排', '考试地点', '座位号', '考试情况', '考试类型', '其它说明'].map((s) => '<td>$s</td>').join()}</tr><tr><td colspan="9">暂无考试安排</td></tr></table>';
|
||||
expect(UndergraduateExamAdapter.extract(empty).records, isEmpty);
|
||||
expect(
|
||||
() => UndergraduateExamAdapter.extract(empty.replaceAll('暂无考试安排', '')),
|
||||
|
||||
Reference in New Issue
Block a user