fix(database): swallow legacy documents lookup failures

This commit is contained in:
edde746
2026-06-13 13:25:34 +02:00
parent 49ae1fdc34
commit f3f962a7c9
2 changed files with 32 additions and 6 deletions
+21
View File
@@ -4,9 +4,11 @@ import 'package:plezy/media/ids.dart';
import 'package:drift/drift.dart' hide isNull, isNotNull;
import 'package:drift/native.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:path_provider_platform_interface/path_provider_platform_interface.dart';
import 'package:plezy/database/app_database.dart';
import 'package:plezy/database/download_operations.dart';
import 'package:plezy/models/download_models.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
void main() {
final suite = _AppDatabaseTestSuite();
@@ -234,6 +236,20 @@ class _AppDatabaseTestSuite {
expect(await source.readAsBytes(), [0xAA, 0xBB]);
expect(await target.exists(), isFalse);
});
test('documents directory lookup failure is a silent no-op', () async {
final previousPathProvider = PathProviderPlatform.instance;
final target = File('${tempDir.path}/AppData/plezy_downloads.db');
PathProviderPlatform.instance = _ThrowingDocumentsPathProvider();
try {
await expectLater(migrateLegacyDesktopDatabase(target: target), completes);
} finally {
PathProviderPlatform.instance = previousPathProvider;
}
expect(await target.exists(), isFalse);
});
});
}
@@ -1029,3 +1045,8 @@ class _AppDatabaseTestSuite {
});
}
}
class _ThrowingDocumentsPathProvider extends PathProviderPlatform with MockPlatformInterfaceMixin {
@override
Future<String?> getApplicationDocumentsPath() async => throw Exception('documents unavailable');
}