Files
biz_xfj_cloud/test/sub_screen/reservation_query_widget_test.dart
T

56 lines
2.1 KiB
Dart

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();
}
});
}
}