Add LLM digest setup and share timestamp context
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
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 <String>['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);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user