fix: import unpublished exam rooms and add opt-in school HTML feedback
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart';
|
||||
import 'package:hepan_everyday/features/school/undergraduate/session.dart';
|
||||
import 'package:hepan_everyday/features/school/undergraduate/page_probe.dart';
|
||||
import 'package:hepan_everyday/services/school_page_diagnostic.dart';
|
||||
|
||||
import '../support/fake_school_web.dart';
|
||||
|
||||
@@ -31,6 +32,21 @@ void main() {
|
||||
session = UndergraduateSession();
|
||||
});
|
||||
tearDown(() => session.dispose());
|
||||
test('failed import retains diagnostic evidence separately and logout removes it', () async {
|
||||
addTearDown(SchoolPageDiagnostic.instance.clear);
|
||||
await session.openTimetable();
|
||||
final content = File('test/fixtures/school/undergraduate-timetable.html')
|
||||
.readAsStringSync()
|
||||
.replaceFirst('"教师1"', '""');
|
||||
platform.web.javascript = (_) async =>
|
||||
underEvidence(platform.web.url!, html: content);
|
||||
await session.readCurrentTimetable();
|
||||
expect(session.pendingDraft, isNull);
|
||||
expect(session.message, contains('教师'));
|
||||
expect(SchoolPageDiagnostic.instance.export(), isNotNull);
|
||||
session.invalidateAuthentication();
|
||||
expect(SchoolPageDiagnostic.instance.export(), isNull);
|
||||
});
|
||||
test('live URL cannot cross origin or change again during capture', () async {
|
||||
await session.openTimetable();
|
||||
final content = File('test/fixtures/school/undergraduate-timetable.html')
|
||||
|
||||
Reference in New Issue
Block a user