Files
biz_xfj_cloud/test/common/card_dialog_test.dart
T
2026-08-06 20:55:09 +08:00

65 lines
2.1 KiB
Dart

import 'dart:async';
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/models/api/hard_api_models.dart';
import 'package:pj_supermarket_cloud/common/widgets/card/card_common.dart';
/// 验证读写卡弹框只关闭自身路由,不影响设置页使用的嵌套 Navigator。
void main() {
testWidgets('点击确定关闭读卡弹框并保留嵌套设置页', (tester) async {
await tester.binding.setSurfaceSize(const Size(1920, 1080));
addTearDown(() => tester.binding.setSurfaceSize(null));
final loading = false.obs;
final detail = Rx<ServiceOpenCard?>(null);
var submitCount = 0;
await tester.pumpWidget(
ScreenUtilInit(
designSize: const Size(1920, 1080),
builder: (_, __) => GetMaterialApp(
builder: (_, child) => FTheme(
data: FThemes.zinc.light,
child: child!,
),
home: Navigator(
onGenerateRoute: (_) => MaterialPageRoute<void>(
builder: (_) => Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () => unawaited(
cardDialog(
title: '读卡器测试',
loading: loading,
detail: detail,
doSubmit: () => submitCount++,
),
),
child: const Text('打开测试'),
),
),
),
),
),
),
),
);
await tester.tap(find.text('打开测试'));
await tester.pumpAndSettle();
expect(find.text('读卡器测试'), findsOneWidget);
await tester.tap(find.text('确定'));
await tester.pumpAndSettle();
expect(submitCount, 1);
expect(find.text('读卡器测试'), findsNothing);
expect(find.text('打开测试'), findsOneWidget);
expect(tester.takeException(), isNull);
});
}