import 'package:flutter_test/flutter_test.dart'; import 'package:relationship_saver/features/ai_digest/application/calendar_event_launcher.dart'; import 'package:relationship_saver/features/ai_digest/domain/ai_digest_models.dart'; void main() { test('builds Google Calendar template URL for event suggestions', () { final Uri? uri = calendarUriForSuggestion( AiSuggestionDraft( id: 'ai-1', personId: 'p-1', kind: AiSuggestionKind.eventIdea, title: 'Coffee festival', details: 'Visit the tasting session.', suggestedAt: DateTime(2026, 5, 16), suggestedFor: DateTime.utc(2026, 5, 20, 18), eventEndsAt: DateTime.utc(2026, 5, 20, 20), eventLocation: 'Local roaster hall', eventUrl: 'https://example.com/events/coffee', sourceUrls: const ['https://example.com/events/coffee'], confidence: 0.8, status: AiSuggestionStatus.pending, sourceRunId: 'run-1', ), ); expect(uri, isNotNull); expect(uri!.host, 'calendar.google.com'); expect(uri.queryParameters['action'], 'TEMPLATE'); expect(uri.queryParameters['text'], 'Coffee festival'); expect(uri.queryParameters['dates'], '20260520T180000Z/20260520T200000Z'); expect(uri.queryParameters['location'], 'Local roaster hall'); expect(uri.queryParameters['details'], contains('Visit the tasting')); expect(uri.queryParameters['details'], contains('https://example.com')); }); test('does not build a calendar URL without event timing', () { final Uri? uri = calendarUriForSuggestion( AiSuggestionDraft( id: 'ai-2', personId: 'p-1', kind: AiSuggestionKind.eventIdea, title: 'Untimed event', details: '', suggestedAt: DateTime(2026, 5, 16), confidence: 0.6, status: AiSuggestionStatus.pending, sourceRunId: 'run-1', ), ); expect(uri, isNull); }); }