fix: harden school imports and add optional feedback diagnostics
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:hepan_everyday/services/diagnostic_log.dart';
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart';
|
||||
@@ -26,6 +29,30 @@ void main() {
|
||||
platform.delegate.finished(url);
|
||||
}
|
||||
|
||||
test('login diagnostic breadcrumbs distinguish probe and network failures without raw details', () async {
|
||||
await session.openTimetable(term: SchoolTerm(73));
|
||||
session.setReadingActive(true);
|
||||
platform.web.javascript = (_) async => throw StateError('PRIVATE_TICKET');
|
||||
navigate('https://yjsjy.uestc.edu.cn/pyxx/home/index');
|
||||
await flushSchoolEvents();
|
||||
var log = utf8.decode(await DiagnosticLog.instance.export());
|
||||
expect(log, contains('school_probe_failed'));
|
||||
expect(log, isNot(contains('PRIVATE_TICKET')));
|
||||
platform.delegate.resourceError(
|
||||
WebResourceError(
|
||||
errorCode: -2,
|
||||
description: 'PRIVATE_NETWORK_DETAIL',
|
||||
isForMainFrame: true,
|
||||
url: platform.web.url,
|
||||
),
|
||||
);
|
||||
await flushSchoolEvents();
|
||||
log = utf8.decode(await DiagnosticLog.instance.export());
|
||||
expect(log, contains('web_resource_error'));
|
||||
expect(log, contains('"status":-2'));
|
||||
expect(log, isNot(contains('PRIVATE_NETWORK_DETAIL')));
|
||||
});
|
||||
|
||||
test('graduate logout function automatically opens timetable without an exit anchor', () async {
|
||||
await session.openTimetable(term: SchoolTerm(73));
|
||||
platform.web.javascript = (script) async =>
|
||||
|
||||
Reference in New Issue
Block a user