Files
social-app/apps/test/features/calendar/reminders/models/reminder_payload_test.dart
T

43 lines
1.3 KiB
Dart
Raw Normal View History

import 'package:flutter_test/flutter_test.dart';
import 'package:social_app/features/calendar/reminders/models/reminder_payload.dart';
void main() {
group('ReminderPayload', () {
test('round-trips single payload', () {
final payload = ReminderPayload(
eventId: 'evt_1',
title: 'Daily Sync',
startAt: DateTime.parse('2026-03-18T16:00:00+08:00'),
endAt: DateTime.parse('2026-03-18T17:00:00+08:00'),
timezone: 'Asia/Shanghai',
location: 'A101',
notes: 'Bring docs',
color: '#3B82F6',
mode: ReminderPayloadMode.single,
aggregateIds: const [],
version: 1,
);
final decoded = ReminderPayload.fromJson(payload.toJson());
expect(decoded, payload);
});
test('round-trips aggregate payload', () {
final payload = ReminderPayload(
eventId: 'evt_group',
title: 'Overlap Reminder',
startAt: DateTime.parse('2026-03-18T16:00:00+08:00'),
timezone: 'Asia/Shanghai',
mode: ReminderPayloadMode.aggregate,
aggregateIds: const ['evt_1', 'evt_2'],
version: 1,
);
final decoded = ReminderPayload.fromJson(payload.toJson());
expect(decoded.mode, ReminderPayloadMode.aggregate);
expect(decoded.aggregateIds, const ['evt_1', 'evt_2']);
expect(decoded, payload);
});
});
}