import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:forui/forui.dart'; import 'package:pj_supermarket_cloud/common/widgets/app/reservation_schedule_card.dart'; import 'package:pj_supermarket_cloud/sub_screen/common/models/reservation_query_display_models.dart'; import 'package:pj_supermarket_cloud/sub_screen/common/utils/reservation_query_coordinator.dart'; import 'package:pj_supermarket_cloud/sub_screen/page/reservation_query_display.dart'; void main() { for (final size in [const Size(1920, 1080), const Size(1280, 720)]) { testWidgets('${size.width.toInt()}x${size.height.toInt()} 六种预约状态无布局异常', (tester) async { tester.view.physicalSize = size; tester.view.devicePixelRatio = 1; addTearDown(tester.view.resetPhysicalSize); addTearDown(tester.view.resetDevicePixelRatio); for (final scenario in ReservationQueryDisplayScenario.values) { final coordinator = ReservationQueryCoordinator( initialState: ReservationQueryDisplayState.demo( scenario, now: DateTime(2026, 7, 24, 8), ), ); await tester.pumpWidget( MaterialApp( debugShowCheckedModeBanner: false, home: FTheme( data: FThemes.zinc.light, child: ReservationQueryDisplayPage(coordinator: coordinator), ), ), ); await tester.pump(); expect( find.byKey(ValueKey('reservation-scenario-${scenario.name}')), findsOneWidget, ); expect(tester.takeException(), isNull); if (scenario == ReservationQueryDisplayScenario.success) { expect(find.byType(ReservationScheduleCard), findsNWidgets(10)); expect(find.text('张*明 · 三年级二班'), findsOneWidget); expect(find.text('张小明'), findsNothing); expect(find.byKey(const ValueKey('reservation-page-indicator')), findsOneWidget); } await tester.pumpWidget(const SizedBox.shrink()); coordinator.dispose(); } }); } }