78 lines
2.2 KiB
Dart
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)),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|