mirror of https://github.com/AMT-Cheif/drift.git
48 lines
1.5 KiB
Dart
48 lines
1.5 KiB
Dart
import 'package:test/test.dart';
|
|
import 'package:tests/data/sample_data.dart' as people;
|
|
import 'package:tests/database/database.dart';
|
|
|
|
import 'suite.dart';
|
|
|
|
void migrationTests(TestExecutor executor) {
|
|
test('creates users table when opening version 1', () async {
|
|
final database = Database(executor.createExecutor(), schemaVersion: 1);
|
|
|
|
// we write 3 users when the database is created
|
|
final count = await database.userCountQuery().getSingle();
|
|
expect(count, 3);
|
|
|
|
await database.close();
|
|
});
|
|
|
|
test('saves and restores database', () async {
|
|
var database = Database(executor.createExecutor(), schemaVersion: 1);
|
|
await database.writeUser(people.florian);
|
|
await database.close();
|
|
|
|
database = Database(executor.createExecutor(), schemaVersion: 2);
|
|
|
|
// the 3 initial users plus People.florian
|
|
final count = await database.userCountQuery().getSingle();
|
|
expect(count, 4);
|
|
expect(database.schemaVersionChangedFrom, 1);
|
|
expect(database.schemaVersionChangedTo, 2);
|
|
|
|
await database.close();
|
|
});
|
|
|
|
test('runs the migrator when downgrading', () async {
|
|
var database = Database(executor.createExecutor(), schemaVersion: 2);
|
|
await database.executor.ensureOpen(); // Create the database
|
|
await database.close();
|
|
|
|
database = Database(executor.createExecutor(), schemaVersion: 1);
|
|
await database.executor.ensureOpen(); // Let the migrator run
|
|
|
|
expect(database.schemaVersionChangedFrom, 2);
|
|
expect(database.schemaVersionChangedTo, 1);
|
|
|
|
await database.close();
|
|
});
|
|
}
|