Files
biz_xfj_cloud/test/common/terminal_toolbar_test.dart
T
2026-07-28 21:34:12 +08:00

78 lines
2.2 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:pj_supermarket_cloud/common/index.dart';
void main() {
testWidgets('1280x720 大字号下工具栏输入框不发生布局溢出', (tester) async {
await tester.binding.setSurfaceSize(const Size(1280, 720));
addTearDown(() => tester.binding.setSurfaceSize(null));
final controller = TextEditingController();
addTearDown(controller.dispose);
await tester.pumpWidget(
_terminalTestApp(
(_) => TerminalToolbarControl(
width: 360.w,
child: FTextField(
controller: controller,
hint: '订单号、用户或商品',
maxLines: 1,
prefixBuilder: (_, __, ___) => FIcon(
FAssets.icons.search,
size: 19.sp,
).center().width(44.w),
),
),
),
);
expect(find.byType(FTextField), findsOneWidget);
expect(tester.takeException(), isNull);
});
testWidgets('1280x720 大字号下日期范围完整布局不溢出', (tester) async {
await tester.binding.setSurfaceSize(const Size(1280, 720));
addTearDown(() => tester.binding.setSurfaceSize(null));
await tester.pumpWidget(
_terminalTestApp(
(_) => TerminalToolbarDateControl(
width: 326.w,
label: '2026-07-28 至 2026-07-28',
onTap: () {},
),
),
);
expect(find.text('2026-07-28 至 2026-07-28'), findsOneWidget);
expect(tester.takeException(), isNull);
});
}
Widget _terminalTestApp(WidgetBuilder childBuilder) {
final baseTheme = FThemes.zinc.light;
final terminalTheme = FThemeData.inherit(
colorScheme: baseTheme.colorScheme,
typography: baseTheme.typography.scale(sizeScalar: 1.4),
style: baseTheme.style,
);
return ScreenUtilInit(
designSize: const Size(1920, 1080),
minTextAdapt: true,
splitScreenMode: true,
builder: (_, __) => MaterialApp(
home: FTheme(
data: terminalTheme,
child: Builder(
builder: (context) => Scaffold(
body: Center(child: childBuilder(context)),
),
),
),
),
);
}