[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 preferOffline = false,
|
||||||
bool waitForConnect = true,
|
bool waitForConnect = true,
|
||||||
}) async* {
|
}) 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(
|
final hash = base64.encode(utf8.encode(
|
||||||
'$filter${_asMap(sort)}$options${paginationParams?.toJson()}$messageLimit$preferOffline',
|
'$filter${_asMap(sort)}$options${paginationParams?.toJson()}$messageLimit$preferOffline',
|
||||||
));
|
));
|
||||||
@@ -644,7 +626,21 @@ class StreamChatClient {
|
|||||||
Map<String, dynamic> options,
|
Map<String, dynamic> options,
|
||||||
int messageLimit,
|
int messageLimit,
|
||||||
PaginationParams paginationParams = const PaginationParams(limit: 10),
|
PaginationParams paginationParams = const PaginationParams(limit: 10),
|
||||||
|
bool waitForConnect = true,
|
||||||
}) async {
|
}) 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');
|
logger.info('Query channel start');
|
||||||
final defaultOptions = {
|
final defaultOptions = {
|
||||||
'state': true,
|
'state': true,
|
||||||
@@ -683,7 +679,7 @@ class StreamChatClient {
|
|||||||
QueryChannelsResponse.fromJson,
|
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.
|
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
|
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''');
|
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/exceptions.dart';
|
||||||
import 'package:stream_chat/src/models/message.dart';
|
import 'package:stream_chat/src/models/message.dart';
|
||||||
import 'package:stream_chat/src/models/user.dart';
|
import 'package:stream_chat/src/models/user.dart';
|
||||||
|
import 'package:stream_chat/src/models/channel_model.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
class MockDio extends Mock implements DioForNative {}
|
class MockDio extends Mock implements DioForNative {}
|
||||||
@@ -86,7 +87,7 @@ void main() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('queryChannels', () {
|
group('queryChannelsOnline', () {
|
||||||
test('should pass right default parameters', () async {
|
test('should pass right default parameters', () async {
|
||||||
final mockDio = MockDio();
|
final mockDio = MockDio();
|
||||||
|
|
||||||
@@ -106,13 +107,14 @@ void main() {
|
|||||||
"watch": true,
|
"watch": true,
|
||||||
"presence": false,
|
"presence": false,
|
||||||
"limit": 10,
|
"limit": 10,
|
||||||
|
"offset": 0,
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
when(mockDio.get<String>('/channels', queryParameters: queryParams))
|
when(mockDio.get<String>('/channels', queryParameters: queryParams))
|
||||||
.thenAnswer((_) async => Response(data: '{}', statusCode: 200));
|
.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))
|
verify(mockDio.get<String>('/channels', queryParameters: queryParams))
|
||||||
.called(1);
|
.called(1);
|
||||||
@@ -134,7 +136,7 @@ void main() {
|
|||||||
"\$in": ["test"],
|
"\$in": ["test"],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
final sortOptions = <SortOption>[];
|
final sortOptions = <SortOption<ChannelModel>>[];
|
||||||
final options = {"state": false, "watch": false, "presence": true};
|
final options = {"state": false, "watch": false, "presence": true};
|
||||||
final paginationParams = PaginationParams(
|
final paginationParams = PaginationParams(
|
||||||
limit: 10,
|
limit: 10,
|
||||||
@@ -152,10 +154,10 @@ void main() {
|
|||||||
|
|
||||||
when(mockDio.get<String>('/channels', queryParameters: queryParams))
|
when(mockDio.get<String>('/channels', queryParameters: queryParams))
|
||||||
.thenAnswer((_) async {
|
.thenAnswer((_) async {
|
||||||
return Response(data: '{}', statusCode: 200);
|
return Response(data: '{"channels":[]}', statusCode: 200);
|
||||||
});
|
});
|
||||||
|
|
||||||
await client.queryChannels(
|
await client.queryChannelsOnline(
|
||||||
filter: queryFilter,
|
filter: queryFilter,
|
||||||
sort: sortOptions,
|
sort: sortOptions,
|
||||||
options: options,
|
options: options,
|
||||||
@@ -229,6 +231,7 @@ void main() {
|
|||||||
'query': query,
|
'query': query,
|
||||||
'sort': sortOptions,
|
'sort': sortOptions,
|
||||||
'limit': 10,
|
'limit': 10,
|
||||||
|
'offset': 0,
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -346,7 +349,7 @@ void main() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
when(mockDio.get<String>('/users', queryParameters: queryParams))
|
when(mockDio.get<String>('/users', queryParameters: queryParams))
|
||||||
.thenAnswer((_) async => Response(data: '{}', statusCode: 200));
|
.thenAnswer((_) async => Response(data: '{"users":[]}', statusCode: 200));
|
||||||
|
|
||||||
await client.queryUsers();
|
await client.queryUsers();
|
||||||
|
|
||||||
@@ -382,7 +385,7 @@ void main() {
|
|||||||
|
|
||||||
when(mockDio.get<String>('/users', queryParameters: queryParams))
|
when(mockDio.get<String>('/users', queryParameters: queryParams))
|
||||||
.thenAnswer((_) async {
|
.thenAnswer((_) async {
|
||||||
return Response(data: '{}', statusCode: 200);
|
return Response(data: '{"users":[]}', statusCode: 200);
|
||||||
});
|
});
|
||||||
|
|
||||||
await client.queryUsers(
|
await client.queryUsers(
|
||||||
|
|||||||
Reference in New Issue
Block a user