// 功能描述:钱包隐私开关、真实空错状态、账单筛选和详情;版本:1.0.0。 import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:user_app/ui/core/app_theme.dart'; import 'package:user_app/ui/features/wallet/wallet_page.dart'; import 'package:user_app/ui/features/wallet/wallet_bills_page.dart'; import '../support/a1_fixture.dart'; void main() { testWidgets('金额隐藏覆盖余额与最近账单,账单失败可独立重试', (tester) async { final repo = A1FixtureRepository()..fail = true; await tester.pumpWidget( MaterialApp( theme: AppTheme.light(), home: WalletPage(repository: repo), ), ); await tester.pumpAndSettle(); expect(find.text('¥568.00'), findsOneWidget); await tester.tap(find.byTooltip('隐藏金额')); await tester.pumpAndSettle(); expect(find.text('¥568.00'), findsNothing); await tester.scrollUntilVisible( find.text('账单加载失败,点击重试'), 250, scrollable: find.byType(Scrollable).first, ); await tester.pumpAndSettle(); repo.fail = false; await tester.tap(find.text('账单加载失败,点击重试')); await tester.pumpAndSettle(); expect(find.text('-¥228.00'), findsNothing); expect(find.text('气瓶订单'), findsOneWidget); }); testWidgets('账单筛选只显示对应方向并能查看记账详情', (tester) async { await tester.pumpWidget( MaterialApp( theme: AppTheme.light(), home: WalletBillsPage(repository: A1FixtureRepository()), ), ); await tester.pumpAndSettle(); await tester.tap(find.text('收入')); await tester.pumpAndSettle(); expect(find.text('气瓶订单'), findsNothing); expect(find.text('+¥59.00'), findsOneWidget); await tester.tap(find.text('退款入账')); await tester.pumpAndSettle(); expect(find.text('记账后余额:¥568.00'), findsOneWidget); }); }