import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:provider/provider.dart'; import 'package:yumi/modules/room/seat/sc_seat_item.dart'; import 'package:yumi/services/audio/rtc_manager.dart'; import 'package:yumi/shared/business_logic/models/res/join_room_res.dart'; import 'package:yumi/shared/business_logic/models/res/room_res.dart'; import 'package:yumi/ui_kit/widgets/room/seat/room_seat_widget.dart'; void main() { testWidgets( 'RoomSeatWidget falls back to configured mikeSize when mic list is empty', (tester) async { await tester.binding.setSurfaceSize(const Size(1600, 1200)); addTearDown(() async { await tester.binding.setSurfaceSize(null); }); final rtcProvider = RealTimeCommunicationManager() ..currenRoom = JoinRoomRes( roomProfile: RoomProfile(roomSetting: RoomSetting(mikeSize: 10)), ); await tester.pumpWidget( ScreenUtilInit( designSize: const Size(375, 812), builder: (_, __) => ChangeNotifierProvider.value( value: rtcProvider, child: MaterialApp(home: Scaffold(body: RoomSeatWidget())), ), ), ); expect(find.byType(RoomSeatWidget), findsOneWidget); expect(find.byType(SCSeatItem), findsNWidgets(10)); }, ); }