diff --git a/packages/stream_chat/lib/src/client.dart b/packages/stream_chat/lib/src/client.dart index 433a132c..8b8d7c11 100644 --- a/packages/stream_chat/lib/src/client.dart +++ b/packages/stream_chat/lib/src/client.dart @@ -1029,6 +1029,9 @@ class StreamChatClient { Map messageFilters, }) async { assert(() { + if (filters == null || filters.isEmpty) { + throw ArgumentError('`filters` cannot be set as null or empty'); + } if (query == null && messageFilters == null) { throw ArgumentError('Provide at least `query` or `messageFilters`'); } diff --git a/packages/stream_chat/test/src/client_test.dart b/packages/stream_chat/test/src/client_test.dart index 815b3e5e..e82658e1 100644 --- a/packages/stream_chat/test/src/client_test.dart +++ b/packages/stream_chat/test/src/client_test.dart @@ -180,18 +180,25 @@ void main() { httpClient: mockDio, ); + final filter = { + 'cid': { + r'$in': ['messaging:testId'] + } + }; + + final query = 'hello'; + final queryParams = { 'payload': json.encode({ - "filter_conditions": null, - 'query': null, - 'sort': null, + 'filter_conditions': filter, + 'query': query, }), }; when(mockDio.get('/search', queryParameters: queryParams)) .thenAnswer((_) async => Response(data: '{}', statusCode: 200)); - await client.search(null, null, null, null); + await client.search(filter, query: query); verify(mockDio.get('/search', queryParameters: queryParams)) .called(1); @@ -218,10 +225,10 @@ void main() { final queryParams = { 'payload': json.encode({ - "filter_conditions": filters, + 'filter_conditions': filters, 'query': query, 'sort': sortOptions, - "limit": 10, + 'limit': 10, }), }; @@ -230,9 +237,9 @@ void main() { await client.search( filters, - sortOptions, - query, - PaginationParams(), + sort: sortOptions, + query: query, + paginationParams: PaginationParams(), ); verify(mockDio.get('/search', queryParameters: queryParams)) @@ -648,7 +655,7 @@ void main() { when(mockDio.post( '/messages/${message.id}', - data: {'message': message}, + data: {'message': anything}, )).thenAnswer((_) async => Response(data: '{}', statusCode: 200)); await client.updateMessage(message); diff --git a/packages/stream_chat/test/src/models/channel_state_test.dart b/packages/stream_chat/test/src/models/channel_state_test.dart index b8ce3c80..538f1812 100644 --- a/packages/stream_chat/test/src/models/channel_state_test.dart +++ b/packages/stream_chat/test/src/models/channel_state_test.dart @@ -87,7 +87,11 @@ void main() { "updated_at": "2020-01-29T03:23:02.843949Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-e8e74482-b4cd-48db-9d1e-30e6c191786f", @@ -114,7 +118,11 @@ void main() { "updated_at": "2020-01-29T03:23:07.981091Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-53e6299f-9b97-4a9c-a27e-7e2dde49b7e0", @@ -141,7 +149,11 @@ void main() { "updated_at": "2020-01-29T03:23:11.568022Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-80925be0-786e-40a5-b225-486518dafd35", @@ -168,7 +180,11 @@ void main() { "updated_at": "2020-01-29T03:32:57.403566Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-64d7970f-ede8-4b31-9738-1bc1756d2bfe", @@ -195,7 +211,11 @@ void main() { "updated_at": "2020-01-29T03:33:35.294802Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "withered-cell-0-84cbd760-cf55-4f7e-9207-c5f66cccc6dc", @@ -222,7 +242,11 @@ void main() { "updated_at": "2020-01-29T03:34:27.393296Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-e9203588-43c3-40b1-91f7-f217fc42aa53", @@ -249,7 +273,11 @@ void main() { "updated_at": "2020-01-29T03:34:37.638376Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "withered-cell-0-7e3552d7-7a0d-45f2-a856-e91b23a7e240", @@ -276,7 +304,11 @@ void main() { "updated_at": "2020-01-29T03:35:04.301566Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-1ffeafd4-e4fc-4c84-9394-9d7cb10fff42", @@ -303,7 +335,11 @@ void main() { "updated_at": "2020-01-29T03:35:24.939085Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-3f147324-12c8-4b41-9fb5-2db88d065efa", @@ -330,7 +366,11 @@ void main() { "updated_at": "2020-01-29T03:35:33.101566Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-51a348ae-0c0a-44de-a556-eac7891c0cf0", @@ -357,7 +397,11 @@ void main() { "updated_at": "2020-01-29T03:35:45.458685Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "icy-recipe-7-a29e237b-8d81-4a97-9bc8-d42bca3f1356", @@ -384,7 +428,11 @@ void main() { "updated_at": "2020-01-29T07:02:11.535395Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "icy-recipe-7-935c396e-ddf8-4a9a-951c-0a12fa5bf055", @@ -411,7 +459,11 @@ void main() { "updated_at": "2020-01-29T07:02:22.485136Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "throbbing-boat-5-1e4d5730-5ff0-4d25-9948-9f34ffda43e4", @@ -438,7 +490,11 @@ void main() { "updated_at": "2020-01-29T14:12:04.688552Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "snowy-credit-3-3e0c1a0d-d22f-42ee-b2a1-f9f49477bf21", @@ -465,7 +521,11 @@ void main() { "updated_at": "2020-01-29T15:29:36.011316Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "snowy-credit-3-3319537e-2d0e-4876-8170-a54f046e4b7d", @@ -492,7 +552,11 @@ void main() { "updated_at": "2020-01-29T15:29:41.677819Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "snowy-credit-3-cfaf0b46-1daa-49c5-947c-b16d6697487d", @@ -519,7 +583,11 @@ void main() { "updated_at": "2020-01-29T15:29:43.354177Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "snowy-credit-3-cebe25a7-a3a3-49fc-9919-91c6725e81f3", @@ -546,7 +614,11 @@ void main() { "updated_at": "2020-01-29T15:29:44.754713Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "divine-glade-9-0cea9262-5766-48e9-8b22-311870aed3bf", @@ -573,7 +645,11 @@ void main() { "updated_at": "2020-01-29T17:02:36.933852Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "red-firefly-9-c4e9007b-bb7d-4238-ae08-5f8e3cd03d73", @@ -600,7 +676,11 @@ void main() { "updated_at": "2020-01-29T22:14:08.54062Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "bitter-glade-2-02aee4eb-4093-4736-808b-2de75820e854", @@ -627,7 +707,11 @@ void main() { "updated_at": "2020-01-30T13:11:37.191293Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "morning-sea-1-0c700bcb-46dd-4224-b590-e77bdbccc480", @@ -654,7 +738,11 @@ void main() { "updated_at": "2020-01-30T13:33:16.853116Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "ancient-salad-0-53e8b4e6-5b7b-43ad-aeee-8bfb6a9ed0be", @@ -681,7 +769,11 @@ void main() { "updated_at": "2020-01-30T13:36:52.749732Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "ancient-salad-0-8c225075-bd4c-42e2-8024-530aae13cd40", @@ -708,7 +800,11 @@ void main() { "updated_at": "2020-01-30T13:37:41.631056Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "proud-sea-7-17802096-cbf8-4e3c-addd-4ee31f4c8b5c", @@ -735,7 +831,11 @@ void main() { "updated_at": "2020-01-30T13:43:41.062362Z", "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null } ], "watcher_count": 5, @@ -797,7 +897,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-e8e74482-b4cd-48db-9d1e-30e6c191786f", @@ -809,7 +913,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-53e6299f-9b97-4a9c-a27e-7e2dde49b7e0", @@ -821,7 +929,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-80925be0-786e-40a5-b225-486518dafd35", @@ -833,7 +945,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-64d7970f-ede8-4b31-9738-1bc1756d2bfe", @@ -845,7 +961,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "withered-cell-0-84cbd760-cf55-4f7e-9207-c5f66cccc6dc", @@ -857,7 +977,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-e9203588-43c3-40b1-91f7-f217fc42aa53", @@ -869,7 +993,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "withered-cell-0-7e3552d7-7a0d-45f2-a856-e91b23a7e240", @@ -881,7 +1009,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-1ffeafd4-e4fc-4c84-9394-9d7cb10fff42", @@ -893,7 +1025,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-3f147324-12c8-4b41-9fb5-2db88d065efa", @@ -905,7 +1041,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "dry-meadow-0-51a348ae-0c0a-44de-a556-eac7891c0cf0", @@ -917,7 +1057,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "icy-recipe-7-a29e237b-8d81-4a97-9bc8-d42bca3f1356", @@ -929,7 +1073,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "icy-recipe-7-935c396e-ddf8-4a9a-951c-0a12fa5bf055", @@ -941,7 +1089,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "throbbing-boat-5-1e4d5730-5ff0-4d25-9948-9f34ffda43e4", @@ -953,7 +1105,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "snowy-credit-3-3e0c1a0d-d22f-42ee-b2a1-f9f49477bf21", @@ -965,7 +1121,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "snowy-credit-3-3319537e-2d0e-4876-8170-a54f046e4b7d", @@ -977,7 +1137,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "snowy-credit-3-cfaf0b46-1daa-49c5-947c-b16d6697487d", @@ -989,7 +1153,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "snowy-credit-3-cebe25a7-a3a3-49fc-9919-91c6725e81f3", @@ -1001,7 +1169,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "divine-glade-9-0cea9262-5766-48e9-8b22-311870aed3bf", @@ -1013,7 +1185,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "red-firefly-9-c4e9007b-bb7d-4238-ae08-5f8e3cd03d73", @@ -1025,7 +1201,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "bitter-glade-2-02aee4eb-4093-4736-808b-2de75820e854", @@ -1037,7 +1217,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "morning-sea-1-0c700bcb-46dd-4224-b590-e77bdbccc480", @@ -1049,7 +1233,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "ancient-salad-0-53e8b4e6-5b7b-43ad-aeee-8bfb6a9ed0be", @@ -1061,7 +1249,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "ancient-salad-0-8c225075-bd4c-42e2-8024-530aae13cd40", @@ -1073,7 +1265,11 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null }, { "id": "proud-sea-7-17802096-cbf8-4e3c-addd-4ee31f4c8b5c", @@ -1085,9 +1281,14 @@ void main() { "show_in_channel": null, "mentioned_users": [], "status": "SENT", - "silent": false + "silent": false, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null } ], + "pinned_messages": [], "members": [], "watcher_count": 5 } @@ -1100,6 +1301,7 @@ void main() { (j['messages'] as List).map((m) => Message.fromJson(m)).toList(), read: null, watcherCount: 5, + pinnedMessages: [], watchers: null, ); diff --git a/packages/stream_chat/test/src/models/message_test.dart b/packages/stream_chat/test/src/models/message_test.dart index 7541f722..fe8fc44a 100644 --- a/packages/stream_chat/test/src/models/message_test.dart +++ b/packages/stream_chat/test/src/models/message_test.dart @@ -64,6 +64,10 @@ void main() { "reaction_scores": { "love": 1 }, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null, "reply_count": 0, "created_at": "2020-01-28T22:17:31.107978Z", "updated_at": "2020-01-28T22:17:31.130506Z", @@ -86,6 +90,10 @@ void main() { expect(message.createdAt, DateTime.parse("2020-01-28T22:17:31.107978Z")); expect(message.updatedAt, DateTime.parse("2020-01-28T22:17:31.130506Z")); expect(message.mentionedUsers, isA>()); + expect(message.pinned, false); + expect(message.pinnedAt, null); + expect(message.pinExpires, null); + expect(message.pinnedBy, null); }); test('should serialize to json correctly', () { @@ -143,6 +151,10 @@ void main() { "parent_id": "parentId", "quoted_message": null, "quoted_message_id": null, + "pinned": false, + "pinned_at": null, + "pin_expires": null, + "pinned_by": null, "show_in_channel": true, "hey": "test" }