import 'dart:typed_data'; import 'dart:ui'; import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:pdf_signature/ui/features/pdf/view_model/pdf_view_model.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:pdf_signature/app.dart'; import 'package:pdf_signature/data/repositories/preferences_repository.dart'; import 'package:pdf_signature/data/repositories/document_repository.dart'; import 'package:pdf_signature/ui/features/pdf/view_model/pdf_export_view_model.dart'; import 'package:pdf_signature/data/services/export_service.dart'; import 'package:pdf_signature/domain/models/model.dart'; import 'package:image/image.dart' as img; class FakeExportService extends ExportService { bool exported = false; @override Future exportSignedPdfFromBytes({ Map? libraryImages, required Uint8List srcBytes, required Size uiPageSize, required Uint8List? signatureImageBytes, Map>? placementsByPage, double targetDpi = 144.0, }) async => Uint8List.fromList([1, 2, 3]); @override Future saveBytesToFile({ required Uint8List bytes, required String outputPath, }) async { exported = true; return true; } } Future pumpApp( WidgetTester tester, { Map initialPrefs = const {}, }) async { SharedPreferences.setMockInitialValues(initialPrefs); final prefs = await SharedPreferences.getInstance(); final container = ProviderContainer( overrides: [ preferencesRepositoryProvider.overrideWith( (ref) => PreferencesStateNotifier(prefs), ), documentRepositoryProvider.overrideWith( (ref) => DocumentStateNotifier()..openSample(), ), pdfViewModelProvider.overrideWith( (ref) => PdfViewModel(ref, useMockViewer: true), ), pdfExportViewModelProvider.overrideWith( (ref) => PdfExportViewModel(ref, savePathPicker: () async => 'out.pdf'), ), ], ); await tester.pumpWidget( UncontrolledProviderScope(container: container, child: const MyApp()), ); await tester.pumpAndSettle(); return container; }