[LLC] Fix tests and minor refactoring
Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
@@ -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,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(
|
||||
|
||||
Reference in New Issue
Block a user