From f361d7f7f5a80b4abf8167be7d9e6d0135f60578 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Wed, 28 Oct 2020 14:12:59 +0100 Subject: [PATCH] fix tests --- lib/src/stream_chat.dart | 2 +- test/src/message_reaction_modal_test.dart | 12 ++++++++-- test/src/reaction_bubble_test.dart | 28 +++++++++++++++++++---- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/lib/src/stream_chat.dart b/lib/src/stream_chat.dart index 4231dab2..e32c7fa1 100644 --- a/lib/src/stream_chat.dart +++ b/lib/src/stream_chat.dart @@ -178,7 +178,7 @@ class StreamChatState extends State with WidgetsBindingObserver { void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); - client.state.totalUnreadCountStream.listen((count) { + client.state?.totalUnreadCountStream?.listen((count) { if (count > 0) { FlutterAppBadger.updateBadgeCount(count); } else { diff --git a/test/src/message_reaction_modal_test.dart b/test/src/message_reaction_modal_test.dart index e3972780..e270793e 100644 --- a/test/src/message_reaction_modal_test.dart +++ b/test/src/message_reaction_modal_test.dart @@ -10,13 +10,21 @@ void main() { testWidgets( 'it should show one thumbs from the picker', (WidgetTester tester) async { + final client = MockClient(); + final clientState = MockClientState(); final themeData = ThemeData(); + + when(client.state).thenReturn(clientState); + when(clientState.user).thenReturn(OwnUser(id: 'user-id')); + final streamTheme = StreamChatThemeData.getDefaultTheme(themeData); + await tester.pumpWidget( MaterialApp( theme: themeData, - home: StreamChatTheme( - data: streamTheme, + home: StreamChat( + client: client, + streamChatThemeData: streamTheme, child: MessageReactionsModal( message: Message( id: 'test', diff --git a/test/src/reaction_bubble_test.dart b/test/src/reaction_bubble_test.dart index dc0381de..c524061c 100644 --- a/test/src/reaction_bubble_test.dart +++ b/test/src/reaction_bubble_test.dart @@ -1,8 +1,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:mockito/mockito.dart'; import 'package:stream_chat_flutter/src/reaction_bubble.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; +import 'mocks.dart'; + void main() { testWidgets( 'it should show no reactions', @@ -29,17 +32,25 @@ void main() { testWidgets( 'it should show a thumb up', (WidgetTester tester) async { + final client = MockClient(); + final clientState = MockClientState(); final themeData = ThemeData(); + + when(client.state).thenReturn(clientState); + when(clientState.user).thenReturn(OwnUser(id: 'user-id')); + await tester.pumpWidget( MaterialApp( theme: themeData, - home: StreamChatTheme( - data: StreamChatThemeData.getDefaultTheme(themeData), + home: StreamChat( + client: client, + streamChatThemeData: StreamChatThemeData.getDefaultTheme(themeData), child: Container( child: ReactionBubble( reactions: [ Reaction( type: 'thumbs_up', + user: User(id: 'test'), ), ], borderColor: Colors.black, @@ -56,20 +67,29 @@ void main() { testWidgets( 'it should show two reactions', (WidgetTester tester) async { + final client = MockClient(); + final clientState = MockClientState(); final themeData = ThemeData(); + + when(client.state).thenReturn(clientState); + when(clientState.user).thenReturn(OwnUser(id: 'user-id')); + await tester.pumpWidget( MaterialApp( theme: themeData, - home: StreamChatTheme( - data: StreamChatThemeData.getDefaultTheme(themeData), + home: StreamChat( + client: client, + streamChatThemeData: StreamChatThemeData.getDefaultTheme(themeData), child: Container( child: ReactionBubble( reactions: [ Reaction( type: 'thumbs_up', + user: User(id: 'test'), ), Reaction( type: 'love', + user: User(id: 'test'), ), ], borderColor: Colors.black,