chore: migrate and update tests.

Signed-off-by: xsahil03x <[email protected]>
This commit is contained in:
Sahil Kumar
2023-06-20 14:43:13 +05:30
committed by xsahil03x
parent 84b50fc852
commit c6f64fdc96
25 changed files with 311 additions and 412 deletions
@@ -1,9 +1,7 @@
import 'package:mocktail/mocktail.dart';
import 'package:stream_chat/src/client/retry_policy.dart';
import 'package:stream_chat/src/client/retry_queue.dart';
import 'package:stream_chat/src/core/models/event.dart';
import 'package:stream_chat/src/core/models/message.dart';
import 'package:stream_chat/src/event_type.dart';
import 'package:stream_chat/stream_chat.dart';
import 'package:test/test.dart';
import '../mocks.dart';
@@ -15,8 +13,9 @@ void main() {
setUpAll(() {
final retryPolicy = RetryPolicy(
shouldRetry: (_, attempt, __) => attempt < 5,
retryTimeout: (_, attempt, __) => Duration(seconds: attempt),
shouldRetry: (_, __, error) {
return error is StreamChatNetworkError && error.isRetriable;
},
);
when(() => channel.client.retryPolicy).thenReturn(retryPolicy);
@@ -48,21 +47,32 @@ void main() {
verifyNever(() => logger.info(any()));
});
test('should throw if message state is not failed', () {
final message = Message(
id: 'test-message-id',
text: 'Sample message test',
state: MessageState.sent,
);
expect(() => retryQueue.add([message]), throwsA(isA<AssertionError>()));
});
test('should return if queue already contains the message', () {
final message = Message(
id: 'test-message-id',
text: 'Sample message test',
state: MessageState.sendingFailed,
);
retryQueue.add([message]);
expect(() => retryQueue.add([message]), returnsNormally);
// Called only for the first message
verify(() => logger.info('Adding 1 messages')).called(1);
verify(() => logger.info('Adding 1 messages to the queue')).called(1);
});
test('`.add` should add failed request to the queue', () async {
final message = Message(
id: 'test-message-id',
text: 'Sample message test',
state: MessageState.sendingFailed,
);
retryQueue.add([message]);
expect(retryQueue.hasMessages, isTrue);