65 lines
2.1 KiB
Dart
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);
|
|
});
|
|
}
|