import 'package:flutter_test/flutter_test.dart'; import 'package:social_app/features/calendar/reminders/reminder_queue_manager.dart'; import 'package:social_app/features/calendar/reminders/models/reminder_payload.dart'; void main() { group('ReminderQueueManager', () { test('按点击顺序处理,第一条处理完后处理剩余的按时间排序', () { final manager = ReminderQueueManager(); final event1 = ReminderPayload( eventId: '1', title: 'Event 1', startAt: DateTime(2026, 3, 20, 10, 1), timezone: 'UTC', mode: ReminderPayloadMode.single, ); final event2 = ReminderPayload( eventId: '2', title: 'Event 2', startAt: DateTime(2026, 3, 20, 10, 2), timezone: 'UTC', mode: ReminderPayloadMode.single, ); final event3 = ReminderPayload( eventId: '3', title: 'Event 3', startAt: DateTime(2026, 3, 20, 10, 3), timezone: 'UTC', mode: ReminderPayloadMode.single, ); manager.enqueueFromClick(event2); manager.enqueuePending([event1, event3]); expect(manager.currentPayload?.eventId, '2'); manager.dequeueCurrent(); expect(manager.currentPayload?.eventId, '1'); manager.dequeueCurrent(); expect(manager.currentPayload?.eventId, '3'); manager.dequeueCurrent(); expect(manager.isEmpty, true); }); test('单条通知处理完直接清空', () { final manager = ReminderQueueManager(); final event = ReminderPayload( eventId: '1', title: 'Event 1', startAt: DateTime.now(), timezone: 'UTC', mode: ReminderPayloadMode.single, ); manager.enqueueFromClick(event); expect(manager.isEmpty, false); manager.dequeueCurrent(); expect(manager.isEmpty, true); }); }); }