From c36a1386d3547b374ae127dce7d5571087fd7560 Mon Sep 17 00:00:00 2001 From: Ralf Kistner Date: Thu, 17 Oct 2024 17:00:01 +0200 Subject: [PATCH] Make drift tests stable. --- packages/drift_sqlite_async/test/db_test.dart | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/packages/drift_sqlite_async/test/db_test.dart b/packages/drift_sqlite_async/test/db_test.dart index ed901cf..6de575e 100644 --- a/packages/drift_sqlite_async/test/db_test.dart +++ b/packages/drift_sqlite_async/test/db_test.dart @@ -48,8 +48,15 @@ void main() { test('watch', () async { var stream = dbu.select(dbu.todoItems).watch(); - var resultsPromise = - stream.distinct().skipWhile((e) => e.isEmpty).take(3).toList(); + var resultsPromise = stream + // toString() so that we can use distinct() + .map((rows) => rows.toString()) + // Drift may or may not emit duplicate update notifications. + // We use distinct() to ignore those. + .distinct() + .skipWhile((e) => e.isEmpty) + .take(3) + .toList(); await dbu.into(dbu.todoItems).insert( TodoItemsCompanion.insert(id: Value(1), description: 'Test 1')); @@ -65,16 +72,20 @@ void main() { expect( results, equals([ - [TodoItem(id: 1, description: 'Test 1')], - [TodoItem(id: 1, description: 'Test 1B')], - [] + '[TodoItem(id: 1, description: Test 1)]', + '[TodoItem(id: 1, description: Test 1B)]', + '[]' ])); }); test('watch with external updates', () async { var stream = dbu.select(dbu.todoItems).watch(); - var resultsPromise = - stream.distinct().skipWhile((e) => e.isEmpty).take(3).toList(); + var resultsPromise = stream + .map((rows) => rows.toString()) + .distinct() + .skipWhile((e) => e.isEmpty) + .take(3) + .toList(); await db.execute( 'INSERT INTO todos(id, description) VALUES(?, ?)', [1, 'Test 1']); @@ -88,9 +99,9 @@ void main() { expect( results, equals([ - [TodoItem(id: 1, description: 'Test 1')], - [TodoItem(id: 1, description: 'Test 1B')], - [] + '[TodoItem(id: 1, description: Test 1)]', + '[TodoItem(id: 1, description: Test 1B)]', + '[]' ])); }); });