mirror of
https://github.com/immich-app/immich.git
synced 2025-07-31 15:08:44 -04:00
39 lines
1.3 KiB
Dart
39 lines
1.3 KiB
Dart
// dart format width=80
|
|
// ignore_for_file: unused_local_variable, unused_import
|
|
import 'package:drift/drift.dart';
|
|
import 'package:drift_dev/api/migrations_native.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
|
|
|
|
import 'generated/schema.dart';
|
|
import 'generated/schema_v1.dart' as v1;
|
|
import 'generated/schema_v2.dart' as v2;
|
|
|
|
void main() {
|
|
driftRuntimeOptions.dontWarnAboutMultipleDatabases = true;
|
|
late SchemaVerifier verifier;
|
|
|
|
setUpAll(() {
|
|
verifier = SchemaVerifier(GeneratedHelper());
|
|
});
|
|
|
|
group('simple database migrations', () {
|
|
// These simple tests verify all possible schema updates with a simple (no
|
|
// data) migration. This is a quick way to ensure that written database
|
|
// migrations properly alter the schema.
|
|
const versions = GeneratedHelper.versions;
|
|
for (final (i, fromVersion) in versions.indexed) {
|
|
group('from $fromVersion', () {
|
|
for (final toVersion in versions.skip(i + 1)) {
|
|
test('to $toVersion', () async {
|
|
final schema = await verifier.schemaAt(fromVersion);
|
|
final db = Drift(schema.newConnection());
|
|
await verifier.migrateAndValidate(db, toVersion);
|
|
await db.close();
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|