85 lines
2.7 KiB
Dart
85 lines
2.7 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';
|
|
|
|
/// 复刻 app.dart 的最小主题环境:ScreenUtil 按设计稿 1920x1080 初始化,
|
|
/// Forui 主题按字体档位缩放,与真机设置页的工具栏渲染条件一致。
|
|
Widget _harness({required double sizeScalar}) {
|
|
final base = FThemes.zinc.light;
|
|
return ScreenUtilInit(
|
|
designSize: const Size(1920, 1080),
|
|
minTextAdapt: true,
|
|
builder: (_, __) => FTheme(
|
|
data: FThemeData.inherit(
|
|
colorScheme: base.colorScheme,
|
|
typography: base.typography.scale(sizeScalar: sizeScalar),
|
|
style: base.style,
|
|
),
|
|
child: MaterialApp(
|
|
home: Scaffold(
|
|
body: Center(
|
|
child: Row(
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: [
|
|
TerminalToolbarTextField(
|
|
controller: TextEditingController(),
|
|
hint: '姓名/编号/卡号/手机号',
|
|
width: 300,
|
|
),
|
|
TerminalToolbarButton(label: '重置', onTap: () {}),
|
|
TerminalToolbarButton(
|
|
label: '搜索',
|
|
style: TerminalToolbarButtonStyle.primary,
|
|
onTap: () {},
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
void main() {
|
|
tearDown(() {
|
|
XfjDesignTokens.applyThemeMetrics(
|
|
cardRadius: 12,
|
|
controlRadius: 12,
|
|
buttonSizeScale: 1,
|
|
);
|
|
});
|
|
|
|
testWidgets('工具栏输入框在全部字体与按钮档位下与按钮等高且无溢出', (tester) async {
|
|
for (final fontSize in SettingGlobalFontSize.values) {
|
|
for (final buttonSize in SettingButtonSize.values) {
|
|
XfjDesignTokens.applyThemeMetrics(
|
|
cardRadius: 12,
|
|
controlRadius: 12,
|
|
buttonSizeScale: buttonSize.scale,
|
|
);
|
|
await tester.pumpWidget(_harness(sizeScalar: fontSize.fontSize));
|
|
await tester.pump();
|
|
final combo = '字体${fontSize.title}+按钮${buttonSize.title}';
|
|
expect(
|
|
tester.takeException(),
|
|
isNull,
|
|
reason: '$combo 组合出现布局溢出',
|
|
);
|
|
final inputHeight = tester.getSize(find.byType(FTextField)).height;
|
|
final buttonHeight = tester
|
|
.getSize(find.byType(TerminalToolbarButton).first)
|
|
.height;
|
|
expect(
|
|
inputHeight,
|
|
buttonHeight,
|
|
reason: '$combo 组合输入框与按钮高度不一致',
|
|
);
|
|
}
|
|
}
|
|
});
|
|
}
|