|
|
|
|
@ -4,6 +4,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
|
|
|
import 'package:immich_mobile/entities/store.entity.dart';
|
|
|
|
|
import 'package:immich_mobile/infrastructure/repositories/logger_db.repository.dart';
|
|
|
|
|
import 'package:immich_mobile/main.dart' as app;
|
|
|
|
|
import 'package:immich_mobile/providers/db.provider.dart';
|
|
|
|
|
import 'package:immich_mobile/providers/infrastructure/db.provider.dart';
|
|
|
|
|
@ -40,16 +41,14 @@ class ImmichTestHelper {
|
|
|
|
|
await EasyLocalization.ensureInitialized();
|
|
|
|
|
// Clear all data from Isar (reuse existing instance if available)
|
|
|
|
|
final db = await Bootstrap.initIsar();
|
|
|
|
|
await Bootstrap.initDomain(db);
|
|
|
|
|
final logDb = DriftLogger();
|
|
|
|
|
await Bootstrap.initDomain(db, logDb);
|
|
|
|
|
await Store.clear();
|
|
|
|
|
await db.writeTxn(() => db.clear());
|
|
|
|
|
// Load main Widget
|
|
|
|
|
await tester.pumpWidget(
|
|
|
|
|
ProviderScope(
|
|
|
|
|
overrides: [
|
|
|
|
|
dbProvider.overrideWithValue(db),
|
|
|
|
|
isarProvider.overrideWithValue(db),
|
|
|
|
|
],
|
|
|
|
|
overrides: [dbProvider.overrideWithValue(db), isarProvider.overrideWithValue(db)],
|
|
|
|
|
child: const app.MainWidget(),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
@ -59,18 +58,11 @@ class ImmichTestHelper {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@isTest
|
|
|
|
|
void immichWidgetTest(
|
|
|
|
|
String description,
|
|
|
|
|
Future<void> Function(WidgetTester, ImmichTestHelper) test,
|
|
|
|
|
) {
|
|
|
|
|
testWidgets(
|
|
|
|
|
description,
|
|
|
|
|
(widgetTester) async {
|
|
|
|
|
await ImmichTestHelper.loadApp(widgetTester);
|
|
|
|
|
await test(widgetTester, ImmichTestHelper(widgetTester));
|
|
|
|
|
},
|
|
|
|
|
semanticsEnabled: false,
|
|
|
|
|
);
|
|
|
|
|
void immichWidgetTest(String description, Future<void> Function(WidgetTester, ImmichTestHelper) test) {
|
|
|
|
|
testWidgets(description, (widgetTester) async {
|
|
|
|
|
await ImmichTestHelper.loadApp(widgetTester);
|
|
|
|
|
await test(widgetTester, ImmichTestHelper(widgetTester));
|
|
|
|
|
}, semanticsEnabled: false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> pumpUntilFound(
|
|
|
|
|
@ -79,8 +71,7 @@ Future<void> pumpUntilFound(
|
|
|
|
|
Duration timeout = const Duration(seconds: 120),
|
|
|
|
|
}) async {
|
|
|
|
|
bool found = false;
|
|
|
|
|
final timer =
|
|
|
|
|
Timer(timeout, () => throw TimeoutException("Pump until has timed out"));
|
|
|
|
|
final timer = Timer(timeout, () => throw TimeoutException("Pump until has timed out"));
|
|
|
|
|
while (found != true) {
|
|
|
|
|
await tester.pump();
|
|
|
|
|
found = tester.any(finder);
|
|
|
|
|
|