Files
TravelMate/test/models/trip_invitation_test.dart
Van Leemput Dayron 3215a990d1 feat: Implement trip invitation functionality and notification handling
- Added TripInvitationRepository for managing trip invitations.
- Created TripInvitation model with serialization methods.
- Implemented notification payload parser for handling FCM notifications.
- Enhanced NotificationService to manage trip invitations and related actions.
- Updated UserRepository to include user search functionality.
- Modified AuthRepository to store multiple FCM tokens.
- Added tests for trip invitation logic and notification payload parsing.
- Updated pubspec.yaml and pubspec.lock for dependency management.
2026-03-13 13:54:47 +01:00

50 lines
1.4 KiB
Dart

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:travel_mate/models/trip_invitation.dart';
void main() {
group('TripInvitation', () {
test('toMap serializes required fields', () {
final invitation = TripInvitation(
id: 'id_1',
tripId: 'trip_1',
tripTitle: 'Weekend Rome',
inviterId: 'user_a',
inviterName: 'Alice',
inviteeId: 'user_b',
inviteeEmail: 'bob@example.com',
createdAt: DateTime(2026, 3, 3),
);
final map = invitation.toMap();
expect(map['tripId'], 'trip_1');
expect(map['status'], 'pending');
expect(map['respondedAt'], isNull);
expect(map['createdAt'], isA<Timestamp>());
});
test('copyWith updates selected values', () {
final invitation = TripInvitation(
id: 'id_1',
tripId: 'trip_1',
tripTitle: 'Trip',
inviterId: 'user_a',
inviterName: 'Alice',
inviteeId: 'user_b',
inviteeEmail: 'bob@example.com',
createdAt: DateTime(2026, 3, 3),
);
final updated = invitation.copyWith(
status: 'accepted',
respondedAt: DateTime(2026, 3, 4),
);
expect(updated.status, 'accepted');
expect(updated.respondedAt, DateTime(2026, 3, 4));
expect(updated.tripId, invitation.tripId);
});
});
}