import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:relationship_saver/core/config/app_theme.dart'; import 'package:relationship_saver/features/dashboard/dashboard_view.dart'; import 'package:relationship_saver/features/local/storage/local_data_store_in_memory.dart'; import 'package:relationship_saver/features/local/storage/local_data_store_provider.dart'; import 'package:relationship_saver/features/sync/storage/sync_state_store_in_memory.dart'; import 'package:relationship_saver/features/sync/storage/sync_state_store_provider.dart'; void main() { testWidgets( 'graph supports pan/zoom shell and opens person insights on long press', (WidgetTester tester) async { await tester.binding.setSurfaceSize(const Size(390, 844)); addTearDown(() => tester.binding.setSurfaceSize(null)); await tester.pumpWidget( ProviderScope( overrides: [ localDataStoreProvider.overrideWithValue(InMemoryLocalDataStore()), syncStateStoreProvider.overrideWithValue(InMemorySyncStateStore()), ], child: MaterialApp( theme: AppTheme.light(), home: const Scaffold(body: DashboardView()), ), ), ); await tester.pumpAndSettle(const Duration(milliseconds: 600)); expect(find.text('Relationship Graph'), findsOneWidget); expect(find.byType(InteractiveViewer), findsOneWidget); final Finder avaNode = find.byKey( const ValueKey('graph-node-p-ava'), ); expect(avaNode, findsOneWidget); await tester.longPress(avaNode); await tester.pumpAndSettle(const Duration(milliseconds: 700)); expect(find.text('Person Insights'), findsOneWidget); expect(find.byTooltip('Quick add'), findsOneWidget); expect(find.byTooltip('Add to person'), findsOneWidget); expect(find.text('Promotions & Signals'), findsOneWidget); expect(find.text('Ideas'), findsOneWidget); expect(find.text('Moments'), findsOneWidget); expect(find.text('Reminders'), findsOneWidget); await tester.tap(find.byTooltip('Back')); await tester.pumpAndSettle(const Duration(milliseconds: 500)); expect(find.text('Relationship Graph'), findsOneWidget); }, ); }