import 'package:flutter_test/flutter_test.dart'; import 'package:relationship_saver/features/local/local_models.dart'; import 'package:relationship_saver/features/share_intake/domain/share_capture_draft_suggester.dart'; void main() { test('suggests gift idea draft from gift-oriented text', () { final CapturedFactDraft draft = ShareCaptureDraftSuggester.suggestForPayload( SharedPayload( sourceApp: 'whatsapp', payloadType: SharedPayloadType.text, rawText: 'Gift idea: blue scarf she mentioned last week', createdAt: DateTime(2026, 4, 17), receivedAt: DateTime(2026, 4, 17), platform: 'android', ), ); expect(draft.type, CapturedFactType.giftIdea); expect(draft.label, 'Gift idea'); expect(draft.needsReview, isTrue); }); test( 'suggests important date draft when birthday and explicit date are present', () { final CapturedFactDraft draft = ShareCaptureDraftSuggester.suggestForPayload( SharedPayload( sourceApp: 'notes', payloadType: SharedPayloadType.text, rawText: 'Her birthday is 2026-09-14', createdAt: DateTime(2026, 4, 17), receivedAt: DateTime(2026, 4, 17), platform: 'ios', ), ); expect(draft.type, CapturedFactType.importantDate); expect(draft.label, 'Birthday'); expect(draft.dateValue, DateTime(2026, 9, 14)); }, ); test('suggests place idea for shared maps links', () { final CapturedFactDraft draft = ShareCaptureDraftSuggester.suggestForPayload( SharedPayload( sourceApp: 'share_sheet', payloadType: SharedPayloadType.url, rawText: '', url: 'https://maps.apple.com/?address=1%20Infinite%20Loop', createdAt: DateTime(2026, 4, 17), receivedAt: DateTime(2026, 4, 17), platform: 'ios', ), ); expect(draft.type, CapturedFactType.placeIdea); expect(draft.label, 'Place idea'); }); test( 'suggests dislike when text contains strong negative preference signal', () { final CapturedFactDraft draft = ShareCaptureDraftSuggester.suggestForPayload( SharedPayload( sourceApp: 'signal', payloadType: SharedPayloadType.text, rawText: "She doesn't like crowded bars", createdAt: DateTime(2026, 4, 17), receivedAt: DateTime(2026, 4, 17), platform: 'android', ), ); expect(draft.type, CapturedFactType.dislike); expect(draft.label, 'Preference'); }, ); }