mirror of https://github.com/AMT-Cheif/drift.git
Migrate more tests to null safety
This commit is contained in:
parent
e07397006f
commit
896d0f90c7
|
@ -22,7 +22,7 @@ extension SqlIsNull on Expression {
|
|||
|
||||
/// Evaluates to the first expression in [expressions] that's not null, or
|
||||
/// null if all [expressions] evaluate to null.
|
||||
Expression<T> coalesce<T>(List<Expression<T>> expressions) {
|
||||
Expression<T> coalesce<T>(List<Expression<T?>> expressions) {
|
||||
assert(expressions.length >= 2,
|
||||
'coalesce must have at least 2 arguments, got ${expressions.length}');
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ dev_dependencies:
|
|||
build_runner: ^1.10.4
|
||||
test: ^1.16.0-nullsafety
|
||||
mockito: ^5.0.0-nullsafety
|
||||
rxdart: ^0.24.0 # used to test compatibility with stream queries
|
||||
rxdart: ^0.26.0-nullsafety
|
||||
|
||||
dependency_overrides:
|
||||
moor_generator:
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
@ -7,9 +6,9 @@ import 'data/tables/todos.dart';
|
|||
import 'data/utils/mocks.dart';
|
||||
|
||||
void main() {
|
||||
TodoDb db;
|
||||
MockExecutor executor;
|
||||
MockStreamQueries streamQueries;
|
||||
late TodoDb db;
|
||||
late MockExecutor executor;
|
||||
late MockStreamQueries streamQueries;
|
||||
|
||||
setUp(() {
|
||||
executor = MockExecutor();
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:test/test.dart';
|
||||
import 'package:moor/moor.dart';
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
@ -9,9 +8,9 @@ import 'data/utils/mocks.dart';
|
|||
// ignore_for_file: lines_longer_than_80_chars
|
||||
|
||||
void main() {
|
||||
TodoDb db;
|
||||
MockExecutor executor;
|
||||
MockStreamQueries streamQueries;
|
||||
late TodoDb db;
|
||||
late MockExecutor executor;
|
||||
late MockStreamQueries streamQueries;
|
||||
|
||||
setUp(() {
|
||||
executor = MockExecutor();
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
|
@ -130,8 +129,8 @@ void main() {
|
|||
});
|
||||
|
||||
test('equal when value is null and generic is different', () {
|
||||
const first = Value<int>(null);
|
||||
const equalToFirst = Value<String>(null);
|
||||
const first = Value<int?>(null);
|
||||
const equalToFirst = Value<String?>(null);
|
||||
|
||||
expect(first.hashCode, equals(equalToFirst.hashCode));
|
||||
expect(first, equals(equalToFirst));
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
@ -45,8 +44,8 @@ void main() {
|
|||
});
|
||||
|
||||
group('callbacks', () {
|
||||
_FakeDb db;
|
||||
MockExecutor executor;
|
||||
late _FakeDb db;
|
||||
late MockExecutor executor;
|
||||
|
||||
setUp(() {
|
||||
executor = MockExecutor();
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:mockito/mockito.dart';
|
||||
|
@ -9,9 +8,9 @@ import 'data/tables/todos.dart';
|
|||
import 'data/utils/mocks.dart';
|
||||
|
||||
void main() {
|
||||
TodoDb db;
|
||||
MockExecutor executor;
|
||||
MockStreamQueries streamQueries;
|
||||
late TodoDb db;
|
||||
late MockExecutor executor;
|
||||
late MockStreamQueries streamQueries;
|
||||
|
||||
setUp(() {
|
||||
executor = MockExecutor();
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
@TestOn('vm')
|
||||
import 'dart:io';
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
@ -7,9 +6,9 @@ import '../data/tables/todos.dart';
|
|||
import '../data/utils/mocks.dart';
|
||||
|
||||
void main() {
|
||||
MockExecutor read, write;
|
||||
MultiExecutor multi;
|
||||
TodoDb db;
|
||||
late MockExecutor read, write;
|
||||
late MultiExecutor multi;
|
||||
late TodoDb db;
|
||||
|
||||
setUp(() {
|
||||
read = MockExecutor();
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
|
@ -7,8 +6,6 @@ import 'data/utils/mocks.dart';
|
|||
|
||||
// the content is set to non-null and the title must be between 4 and 16 chars
|
||||
// long
|
||||
const nullContent =
|
||||
TodosTableCompanion(title: Value('Test'), content: Value(null));
|
||||
const absentContent =
|
||||
TodosTableCompanion(title: Value('Test'), content: Value.absent());
|
||||
const shortTitle =
|
||||
|
@ -19,8 +16,8 @@ const valid =
|
|||
TodosTableCompanion(title: Value('Test'), content: Value('Some content'));
|
||||
|
||||
void main() {
|
||||
TodoDb db;
|
||||
MockExecutor executor;
|
||||
late TodoDb db;
|
||||
late MockExecutor executor;
|
||||
|
||||
setUp(() {
|
||||
executor = MockExecutor();
|
||||
|
@ -28,11 +25,6 @@ void main() {
|
|||
});
|
||||
|
||||
test('detects errors on insert', () {
|
||||
expect(
|
||||
() => db.into(db.todosTable).insert(nullContent),
|
||||
throwsA(predicate<InvalidDataException>(
|
||||
(e) => e.message.contains('not nullable'))),
|
||||
);
|
||||
expect(
|
||||
() => db.into(db.todosTable).insert(absentContent),
|
||||
throwsA(predicate<InvalidDataException>(
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
//@dart=2.9
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
import '../data/utils/expect_equality.dart';
|
||||
import '../data/utils/expect_generated.dart';
|
||||
|
||||
typedef _Extractor = Expression<int> Function(Expression<DateTime> d);
|
||||
typedef _Extractor = Expression<int?> Function(Expression<DateTime?> d);
|
||||
|
||||
void main() {
|
||||
final column = GeneratedDateTimeColumn('val', 'table', false);
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
@TestOn('vm')
|
||||
import 'package:moor/ffi.dart';
|
||||
import 'package:moor/moor.dart';
|
||||
|
@ -7,7 +6,7 @@ import 'package:test/test.dart';
|
|||
import '../data/tables/todos.dart';
|
||||
|
||||
void main() {
|
||||
TodoDb db;
|
||||
late TodoDb db;
|
||||
|
||||
setUp(() async {
|
||||
db = TodoDb(VmDatabase.memory());
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:test/test.dart';
|
||||
import 'package:moor/moor.dart';
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:test/test.dart';
|
||||
import 'package:moor/moor.dart';
|
||||
|
||||
|
@ -17,7 +16,7 @@ void main() {
|
|||
});
|
||||
|
||||
test('writes null directly for null values', () {
|
||||
const variable = Variable<String>(null);
|
||||
const variable = Variable<String?>(null);
|
||||
final ctx = GenerationContext.fromDb(TodoDb());
|
||||
|
||||
variable.writeInto(ctx);
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
// ignore: import_of_legacy_library_into_null_safe
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
@TestOn('vm')
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:moor/ffi.dart';
|
||||
|
@ -7,7 +6,7 @@ import 'package:test/test.dart';
|
|||
import '../data/tables/todos.dart';
|
||||
|
||||
void main() {
|
||||
TodoDb db;
|
||||
late TodoDb db;
|
||||
|
||||
setUp(() {
|
||||
db = TodoDb(VmDatabase.memory());
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
@TestOn('vm')
|
||||
import 'package:moor/ffi.dart';
|
||||
import 'package:moor/moor.dart' hide isNull;
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
@ -49,15 +48,15 @@ const _defaultInsert = 'INSERT INTO config (config_key, config_value) '
|
|||
|
||||
void main() {
|
||||
// see ../data/tables/tables.moor
|
||||
MockExecutor mock;
|
||||
CustomTablesDb db;
|
||||
late MockExecutor mock;
|
||||
late CustomTablesDb db;
|
||||
|
||||
setUp(() {
|
||||
mock = MockExecutor();
|
||||
db = CustomTablesDb(mock);
|
||||
});
|
||||
|
||||
tearDown(() => db?.close());
|
||||
tearDown(() => db.close());
|
||||
|
||||
test('creates everything as specified in .moor files', () async {
|
||||
await db.createMigrator().createAll();
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
@ -7,8 +6,8 @@ import 'data/tables/todos.dart';
|
|||
import 'data/utils/mocks.dart';
|
||||
|
||||
void main() {
|
||||
TodoDb db;
|
||||
QueryExecutor mockExecutor;
|
||||
late TodoDb db;
|
||||
late QueryExecutor mockExecutor;
|
||||
|
||||
setUp(() {
|
||||
mockExecutor = MockExecutor();
|
||||
|
@ -129,7 +128,7 @@ void main() {
|
|||
|
||||
test('can use migrations inside schema callbacks', () async {
|
||||
final executor = MockExecutor();
|
||||
TodoDb db;
|
||||
late TodoDb db;
|
||||
db = TodoDb(executor)
|
||||
..migration = MigrationStrategy(onUpgrade: (m, from, to) async {
|
||||
await db.transaction(() async {
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:mockito/mockito.dart';
|
||||
|
@ -13,8 +12,8 @@ import 'data/tables/todos.dart';
|
|||
import 'data/utils/mocks.dart';
|
||||
|
||||
void main() {
|
||||
TodoDb db;
|
||||
MockExecutor executor;
|
||||
late TodoDb db;
|
||||
late MockExecutor executor;
|
||||
setUp(() {
|
||||
executor = MockExecutor();
|
||||
db = TodoDb(executor);
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
|
@ -6,8 +5,8 @@ import 'data/tables/todos.dart';
|
|||
import 'data/utils/mocks.dart';
|
||||
|
||||
void main() {
|
||||
TodoDb db;
|
||||
MockExecutor executor;
|
||||
late TodoDb db;
|
||||
late MockExecutor executor;
|
||||
|
||||
setUp(() {
|
||||
executor = MockExecutor();
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:mockito/mockito.dart';
|
||||
|
@ -9,9 +8,9 @@ import 'data/tables/todos.dart';
|
|||
import 'data/utils/mocks.dart';
|
||||
|
||||
void main() {
|
||||
TodoDb db;
|
||||
MockExecutor executor;
|
||||
MockStreamQueries streamQueries;
|
||||
late TodoDb db;
|
||||
late MockExecutor executor;
|
||||
late MockStreamQueries streamQueries;
|
||||
|
||||
setUp(() {
|
||||
executor = MockExecutor();
|
||||
|
@ -116,7 +115,7 @@ void main() {
|
|||
test('can update with custom companions', () async {
|
||||
await db.update(db.todosTable).replace(TodosTableCompanion.custom(
|
||||
id: const Variable(4),
|
||||
content: db.todosTable.content,
|
||||
content: db.todosTable.content.dartCast(),
|
||||
targetDate: db.todosTable.targetDate + const Duration(days: 1),
|
||||
));
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
//@dart=2.9
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:moor/moor.dart';
|
||||
import 'package:pedantic/pedantic.dart';
|
||||
|
|
Loading…
Reference in New Issue