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