51 lines
1.8 KiB
Dart
51 lines
1.8 KiB
Dart
import 'package:ducafe_ui_core/ducafe_ui_core.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:forui/forui.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
import 'package:pj_supermarket_cloud/common/index.dart';
|
|
|
|
/// 验证公共 Toast 在终端横屏和大字号设置下不会因长异常文案产生布局溢出。
|
|
void main() {
|
|
testWidgets('1280x720 大字号下超长错误提示自动换行且不溢出', (tester) async {
|
|
await tester.binding.setSurfaceSize(const Size(1280, 720));
|
|
addTearDown(() => tester.binding.setSurfaceSize(null));
|
|
|
|
final baseTheme = FThemes.zinc.light;
|
|
final terminalTheme = FThemeData.inherit(
|
|
colorScheme: baseTheme.colorScheme,
|
|
typography: baseTheme.typography.scale(sizeScalar: 1.4),
|
|
style: baseTheme.style,
|
|
);
|
|
await tester.pumpWidget(
|
|
ScreenUtilInit(
|
|
designSize: const Size(1920, 1080),
|
|
minTextAdapt: true,
|
|
splitScreenMode: true,
|
|
builder: (_, __) => GetMaterialApp(
|
|
home: const Scaffold(),
|
|
builder: (_, child) => FTheme(
|
|
data: terminalTheme,
|
|
child: child!,
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
const message =
|
|
'DioException [bad response]: The server returned HTTP 500. '
|
|
'设备不存在或不属于当前租户,请在基本信息重新绑定设备后再次执行自动更新。'
|
|
'完整异常和堆栈应保留在任务日志中,界面只显示可恢复的操作提示。';
|
|
Toast.error(msg: message);
|
|
await tester.pump();
|
|
|
|
expect(find.text(message), findsOneWidget);
|
|
expect(tester.getSize(find.text(message)).width, lessThan(1280 * 0.82));
|
|
expect(tester.takeException(), isNull);
|
|
|
|
await tester.pump(const Duration(seconds: 4));
|
|
Get.reset();
|
|
});
|
|
}
|