Files
Butterfly/app/integration_test/screenshot.dart
2025-06-26 13:27:53 +02:00

47 lines
1.5 KiB
Dart

import 'dart:io';
import 'dart:ui';
import 'package:butterfly/cubits/settings.dart';
import 'package:butterfly/main.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
//step 1 Initialize
final binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized();
final sizes = {
'phoneScreenshots': const Size(360, 800),
'sevenInchTabletScreenshots': const Size(600, 1024),
'tenInchTabletScreenshots': const Size(800, 1280),
};
for (final size in sizes.entries) {
final sizeName = size.key;
//final screenSize = size.value;
takeScreenShot(WidgetTester tester, String name) async {
final screenShotName = '$sizeName/$name';
if (!kIsWeb && Platform.isAndroid) {
await binding.convertFlutterSurfaceToImage();
await tester.pumpAndSettle();
}
await binding.takeScreenshot(screenShotName);
}
group('screenshot-$sizeName', () {
//await binding.setSurfaceSize(screenSize);
testWidgets('main', (WidgetTester tester) async {
SharedPreferences.setMockInitialValues({});
final prefs = await SharedPreferences.getInstance();
final settingsCubit = SettingsCubit(prefs);
await tester.pumpWidget(ButterflyApp(settingsCubit: settingsCubit));
await tester.pumpAndSettle();
await takeScreenShot(tester, 'main');
await tester.pumpAndSettle();
});
});
}
}