mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-02-15 14:18:31 +01:00
48 lines
1.2 KiB
Dart
48 lines
1.2 KiB
Dart
import 'package:np_common/object_util.dart';
|
|
import 'package:np_db_sqlite/src/database.dart';
|
|
import 'package:np_db_sqlite/src/database_extension.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import '../test_util.dart' as util;
|
|
|
|
void main() {
|
|
group("database.SqliteDbFileExtension", () {
|
|
test("cleanUpDanglingFiles", _cleanUpDanglingFiles);
|
|
});
|
|
}
|
|
|
|
/// Clean up Files without an associated entry in AccountFiles
|
|
///
|
|
/// Expect: Dangling files deleted
|
|
Future<void> _cleanUpDanglingFiles() async {
|
|
final account = util.buildAccount();
|
|
final files = (util.FilesBuilder()
|
|
..addDir("admin")
|
|
..addJpeg("admin/test1.jpg"))
|
|
.build();
|
|
final db = util.buildTestDb();
|
|
addTearDown(() => db.close());
|
|
await db.transaction(() async {
|
|
await db.insertAccounts([account]);
|
|
await util.insertFiles(db, account, files);
|
|
|
|
await db.alsoFuture((db) async {
|
|
await db.into(db.files).insert(FilesCompanion.insert(
|
|
server: 1,
|
|
fileId: files.length,
|
|
));
|
|
});
|
|
});
|
|
|
|
expect(
|
|
await db.select(db.files).map((f) => f.fileId).get(),
|
|
[0, 1, 2],
|
|
);
|
|
await db.let((db) async {
|
|
await db.cleanUpDanglingFiles();
|
|
});
|
|
expect(
|
|
await db.select(db.files).map((f) => f.fileId).get(),
|
|
[0, 1],
|
|
);
|
|
}
|