From 66a577901c70a56c453a1fd105d042cbf9cfafc9 Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Tue, 16 Mar 2021 20:45:41 +0530 Subject: [PATCH] test(persistence): minor improvement in update function tests Signed-off-by: Sahil Kumar --- .../test/src/dao/member_dao_test.dart | 39 +++++++++++++++---- .../test/src/dao/message_dao_test.dart | 2 +- .../test/src/dao/pinned_message_dao_test.dart | 2 +- .../test/src/dao/reaction_dao_test.dart | 3 +- 4 files changed, 36 insertions(+), 10 deletions(-) diff --git a/packages/stream_chat_persistence/test/src/dao/member_dao_test.dart b/packages/stream_chat_persistence/test/src/dao/member_dao_test.dart index 6671c902..dbb8c73c 100644 --- a/packages/stream_chat_persistence/test/src/dao/member_dao_test.dart +++ b/packages/stream_chat_persistence/test/src/dao/member_dao_test.dart @@ -94,15 +94,40 @@ void main() { ); } - // Updating the last added member - final updatedMember = fetchedMembers.last.copyWith(banned: true); - await memberDao.updateMembers(cid, [updatedMember]); + // Modifying one of the member and also adding one new + final copyMember = fetchedMembers.first.copyWith(banned: true); + final newUser = User(id: 'testUserId3'); + final newMember = Member( + user: newUser, + banned: math.Random().nextBool(), + shadowBanned: math.Random().nextBool(), + createdAt: DateTime.now(), + isModerator: math.Random().nextBool(), + invited: math.Random().nextBool(), + inviteAcceptedAt: DateTime.now(), + role: 'testRole', + updatedAt: DateTime.now(), + ); + await database.userDao.updateUsers([newUser]); + await memberDao.updateMembers(cid, [copyMember, newMember]); - // Last member banned field should match the previous updated user + // Fetched member length should be one more than inserted members. + // copyMember `banned` modified field should be true. + // Fetched members should contain the newMember. final newFetchedMembers = await memberDao.getMembersByCid(cid); - expect(newFetchedMembers.length, fetchedMembers.length); - final lastMember = newFetchedMembers.last; - expect(lastMember.banned, true); + expect(newFetchedMembers.length, fetchedMembers.length + 1); + expect( + newFetchedMembers + .firstWhere((it) => it.user.id == copyMember.user.id) + .banned, + true, + ); + expect( + newFetchedMembers + .where((it) => it.user.id == newMember.user.id) + .isNotEmpty, + true, + ); }); test('deleteMemberByCids', () async { diff --git a/packages/stream_chat_persistence/test/src/dao/message_dao_test.dart b/packages/stream_chat_persistence/test/src/dao/message_dao_test.dart index 6ee8ca2f..dccb414c 100644 --- a/packages/stream_chat_persistence/test/src/dao/message_dao_test.dart +++ b/packages/stream_chat_persistence/test/src/dao/message_dao_test.dart @@ -242,7 +242,7 @@ void main() { false, ); expect( - fetchedMessages.map((it) => it.id).contains('testMessageId${cid}4'), + fetchedMessages.map((it) => it.id).contains(newMessage.id), true, ); }); diff --git a/packages/stream_chat_persistence/test/src/dao/pinned_message_dao_test.dart b/packages/stream_chat_persistence/test/src/dao/pinned_message_dao_test.dart index 1af3276e..5c1bce46 100644 --- a/packages/stream_chat_persistence/test/src/dao/pinned_message_dao_test.dart +++ b/packages/stream_chat_persistence/test/src/dao/pinned_message_dao_test.dart @@ -243,7 +243,7 @@ void main() { false, ); expect( - fetchedMessages.map((it) => it.id).contains('testMessageId${cid}4'), + fetchedMessages.map((it) => it.id).contains(newMessage.id), true, ); }); diff --git a/packages/stream_chat_persistence/test/src/dao/reaction_dao_test.dart b/packages/stream_chat_persistence/test/src/dao/reaction_dao_test.dart index 42273efa..94f8ebdd 100644 --- a/packages/stream_chat_persistence/test/src/dao/reaction_dao_test.dart +++ b/packages/stream_chat_persistence/test/src/dao/reaction_dao_test.dart @@ -128,7 +128,8 @@ void main() { ); expect( fetchedReactions - .where((it) => it.userId == 'testUserId3' && it.type == 'testType3') + .where((it) => + it.userId == newReaction.userId && it.type == newReaction.type) .isNotEmpty, true, );