Files
ReelShort/test/home/catalog_diagnostics_test.dart
T

61 lines
1.8 KiB
Dart

// Author: fruit.com.cn
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:fruitshorts/core/config/app_config.dart';
import 'package:fruitshorts/core/data/services/catalog_retry.dart';
import 'package:fruitshorts/core/theme/app_colors.dart';
import 'package:fruitshorts/l10n/app_localizations.dart';
import 'package:fruitshorts/pages/home/home_view.dart';
void main() {
tearDown(AppConfig.clearRuntimeBaseUrl);
testWidgets('should_show_endpoint_and_raw_error_in_debug_failure', (
tester,
) async {
AppConfig.applyRuntimeBaseUrl('http://probe.test:8081');
await tester.pumpWidget(
MaterialApp(
locale: const Locale('en'),
supportedLocales: AppLocalizations.supportedLocales,
localizationsDelegates: AppLocalizations.localizationsDelegates,
home: Scaffold(
body: HomeFailureView(
error: 'SocketException: Connection refused',
onRetry: () {},
),
),
),
);
final endpoint = tester.widget<Text>(
find.byKey(const Key('catalog-debug-endpoint')),
);
expect(endpoint.data, '服务地址:http://probe.test:8081');
expect(endpoint.style?.fontSize, 12);
expect(endpoint.style?.color, AppColors.subtle);
expect(endpoint.maxLines, 2);
final error = tester.widget<Text>(
find.byKey(const Key('catalog-debug-error')),
);
expect(error.data, '错误:SocketException: Connection refused');
expect(error.style?.fontSize, 12);
expect(error.style?.color, AppColors.subtle);
expect(error.maxLines, 2);
});
test('should_probe_before_reloading_catalog', () async {
final steps = <String>[];
await retryCatalogLoad(
probe: () async => steps.add('probe'),
reload: () async => steps.add('load'),
);
expect(steps, ['probe', 'load']);
});
}