import 'package:drift_dev/api/migrations_native.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:tane/db/database.dart'; import 'schema/schema.dart'; void main() { late SchemaVerifier verifier; setUpAll(() { verifier = SchemaVerifier(GeneratedHelper()); }); test('freshly created database matches the exported schema v5', () async { final schema = await verifier.schemaAt(5); final db = AppDatabase(schema.newConnection()); await verifier.migrateAndValidate(db, 5); await db.close(); }); test('upgrades v1 → v5 (Lot.type, harvestMonth, presentation, ' 'Attachment.sortOrder) and matches the fresh schema', () async { final connection = await verifier.startAt(1); final db = AppDatabase(connection); await verifier.migrateAndValidate(db, 5); await db.close(); }); test('upgrades v2 → v5 and matches the fresh schema', () async { final connection = await verifier.startAt(2); final db = AppDatabase(connection); await verifier.migrateAndValidate(db, 5); await db.close(); }); test('upgrades v3 → v5 and matches the fresh schema', () async { final connection = await verifier.startAt(3); final db = AppDatabase(connection); await verifier.migrateAndValidate(db, 5); await db.close(); }); test('upgrades v4 → v5 (adds Attachment.sortOrder) and matches the fresh ' 'schema', () async { final connection = await verifier.startAt(4); final db = AppDatabase(connection); await verifier.migrateAndValidate(db, 5); await db.close(); }); }