feat: deliver RSchedule service login exams and elastic glass navigation
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:timezone/data/latest.dart' as tzdata;
|
||||
import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart';
|
||||
import 'package:hepan_everyday/app/hepan_app.dart';
|
||||
import 'package:hepan_everyday/features/school/school_session.dart';
|
||||
|
||||
import '../support/fake_school_web.dart';
|
||||
import 'navigation_test.dart' show uiController;
|
||||
|
||||
void main() {
|
||||
setUpAll(tzdata.initializeTimeZones);
|
||||
testWidgets(
|
||||
'logout failure is visible and user can retry clearing school login',
|
||||
(tester) async {
|
||||
final platform = FakeSchoolPlatform();
|
||||
WebViewPlatform.instance = platform;
|
||||
final school = SchoolSession();
|
||||
await school.open();
|
||||
final c = uiController();
|
||||
await c.initialize();
|
||||
await tester.pumpWidget(HepanApp(controller: c, school: school));
|
||||
await tester.pumpAndSettle();
|
||||
await tester.tap(find.bySemanticsLabel('个人设置'));
|
||||
await tester.pumpAndSettle();
|
||||
platform.cookies.fail = true;
|
||||
await tester.tap(find.text('退出学校登录'));
|
||||
await tester.pumpAndSettle();
|
||||
await tester.tap(find.text('保留课表和考试'));
|
||||
await tester.pumpAndSettle();
|
||||
expect(find.textContaining('学校退出未完成'), findsOneWidget);
|
||||
expect(find.text('重试退出学校登录'), findsOneWidget);
|
||||
platform.cookies.fail = false;
|
||||
await tester.tap(find.text('重试退出学校登录'));
|
||||
await tester.pumpAndSettle();
|
||||
await tester.tap(find.text('保留课表和考试'));
|
||||
await tester.pumpAndSettle();
|
||||
expect(find.text('重试退出学校登录'), findsNothing);
|
||||
expect(find.textContaining('学校退出未完成'), findsNothing);
|
||||
school.dispose();
|
||||
c.dispose();
|
||||
},
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user