fix: cleanup logger DB in isolates (#20730)

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
shenlong 2025-08-07 03:27:17 +05:30 committed by GitHub
parent 68b617130a
commit 9c8c52874a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 25 additions and 28 deletions

View file

@ -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);