fix: import unpublished exam rooms and add opt-in school HTML feedback

This commit is contained in:
Codex
2026-10-16 16:38:00 +08:00
parent defe7fd50e
commit 437ed14dbe
31 changed files with 969 additions and 39 deletions
@@ -9,6 +9,7 @@ import 'package:hepan_everyday/features/school/undergraduate/page_probe.dart';
import 'package:hepan_everyday/app/app_controller.dart';
import 'package:hepan_everyday/domain/app_snapshot.dart';
import 'package:hepan_everyday/domain/school_term.dart';
import 'package:hepan_everyday/services/school_page_diagnostic.dart';
import '../support/fake_school_web.dart';
import '../support/fakes.dart';
@@ -82,6 +83,7 @@ void main() {
await tester.pumpAndSettle();
expect(controller.snapshot.courses, hasLength(18));
expect(find.text('打开'), findsOneWidget);
SchoolPageDiagnostic.instance.clear();
});
testWidgets('cross school replacement can be cancelled without saving', (
tester,
@@ -100,6 +102,7 @@ void main() {
await tester.pumpAndSettle();
expect(controller.snapshot.toJson(), previous);
expect(find.text('导入当前课表'), findsOneWidget);
SchoolPageDiagnostic.instance.clear();
});
testWidgets('failed saving stays on the browser and can be retried', (
tester,
@@ -114,6 +117,7 @@ void main() {
await tester.tap(find.text('重试保存'));
await tester.pumpAndSettle();
expect(controller.snapshot.courses, hasLength(18));
SchoolPageDiagnostic.instance.clear();
});
testWidgets('an obsolete deferred save does not strand a newer import', (
tester,
@@ -125,5 +129,6 @@ void main() {
platform.delegate.finished(platform.web.url!);
await tester.pumpAndSettle();
expect(controller.snapshot.courses, hasLength(18));
SchoolPageDiagnostic.instance.clear();
});
}