[LLC] Fix tests and minor refactoring

Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
Sahil Kumar
2021-02-26 19:33:14 +05:30
parent 4368327139
commit d0abad3a3b
2 changed files with 25 additions and 26 deletions
+15 -19
View File
@@ -589,24 +589,6 @@ class StreamChatClient {
bool preferOffline = false,
bool waitForConnect = true,
}) async* {
if (waitForConnect) {
if (_connectCompleter != null && !_connectCompleter.isCompleted) {
logger.info('awaiting connection completer');
await _connectCompleter.future;
}
if (wsConnectionStatus != ConnectionStatus.connected) {
final errorMessage =
'You cannot use queryChannels without an active connection. Please call `connectUser` to connect the client.';
if (persistenceEnabled) {
logger.warning(
'$errorMessage\nTrying to retrieve channels from the offline storage.');
preferOffline = true;
} else {
throw Exception(errorMessage);
}
}
}
final hash = base64.encode(utf8.encode(
'$filter${_asMap(sort)}$options${paginationParams?.toJson()}$messageLimit$preferOffline',
));
@@ -644,7 +626,21 @@ class StreamChatClient {
Map<String, dynamic> options,
int messageLimit,
PaginationParams paginationParams = const PaginationParams(limit: 10),
bool waitForConnect = true,
}) async {
if (waitForConnect) {
if (_connectCompleter != null && !_connectCompleter.isCompleted) {
logger.info('awaiting connection completer');
await _connectCompleter.future;
}
if (wsConnectionStatus != ConnectionStatus.connected) {
throw Exception(
'You cannot use queryChannels without an active connection.'
' Please call `connectUser` to connect the client.',
);
}
}
logger.info('Query channel start');
final defaultOptions = {
'state': true,
@@ -683,7 +679,7 @@ class StreamChatClient {
QueryChannelsResponse.fromJson,
);
if (res.channels?.isEmpty == true && (paginationParams?.offset ?? 0) == 0) {
if ((res.channels ?? []).isEmpty && (paginationParams?.offset ?? 0) == 0) {
logger.warning('''We could not find any channel for this query.
Please make sure to take a look at the Flutter tutorial: https://getstream.io/chat/flutter/tutorial
If your application already has users and channels, you might need to adjust your query channel as explained in the docs https://getstream.io/chat/docs/query_channels/?language=dart''');
+10 -7
View File
@@ -10,6 +10,7 @@ import 'package:stream_chat/src/client.dart';
import 'package:stream_chat/src/exceptions.dart';
import 'package:stream_chat/src/models/message.dart';
import 'package:stream_chat/src/models/user.dart';
import 'package:stream_chat/src/models/channel_model.dart';
import 'package:test/test.dart';
class MockDio extends Mock implements DioForNative {}
@@ -86,7 +87,7 @@ void main() {
});
});
group('queryChannels', () {
group('queryChannelsOnline', () {
test('should pass right default parameters', () async {
final mockDio = MockDio();
@@ -106,13 +107,14 @@ void main() {
"watch": true,
"presence": false,
"limit": 10,
"offset": 0,
}),
};
when(mockDio.get<String>('/channels', queryParameters: queryParams))
.thenAnswer((_) async => Response(data: '{}', statusCode: 200));
await client.queryChannels(waitForConnect: false);
await client.queryChannelsOnline(filter: null, waitForConnect: false);
verify(mockDio.get<String>('/channels', queryParameters: queryParams))
.called(1);
@@ -134,7 +136,7 @@ void main() {
"\$in": ["test"],
},
};
final sortOptions = <SortOption>[];
final sortOptions = <SortOption<ChannelModel>>[];
final options = {"state": false, "watch": false, "presence": true};
final paginationParams = PaginationParams(
limit: 10,
@@ -152,10 +154,10 @@ void main() {
when(mockDio.get<String>('/channels', queryParameters: queryParams))
.thenAnswer((_) async {
return Response(data: '{}', statusCode: 200);
return Response(data: '{"channels":[]}', statusCode: 200);
});
await client.queryChannels(
await client.queryChannelsOnline(
filter: queryFilter,
sort: sortOptions,
options: options,
@@ -229,6 +231,7 @@ void main() {
'query': query,
'sort': sortOptions,
'limit': 10,
'offset': 0,
}),
};
@@ -346,7 +349,7 @@ void main() {
};
when(mockDio.get<String>('/users', queryParameters: queryParams))
.thenAnswer((_) async => Response(data: '{}', statusCode: 200));
.thenAnswer((_) async => Response(data: '{"users":[]}', statusCode: 200));
await client.queryUsers();
@@ -382,7 +385,7 @@ void main() {
when(mockDio.get<String>('/users', queryParameters: queryParams))
.thenAnswer((_) async {
return Response(data: '{}', statusCode: 200);
return Response(data: '{"users":[]}', statusCode: 200);
});
await client.queryUsers(