fix(ui): fix tests
This commit is contained in:
committed by
Efthymios Sarmpanis
parent
7d90dc0cfe
commit
549f3f03d5
@@ -969,7 +969,7 @@ class _MessageListViewState extends State<MessageListView> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final userId = StreamChat.of(context).currentUser!.id;
|
final userId = StreamChat.of(context).currentUser!.id;
|
||||||
final isMyMessage = message.user!.id == userId;
|
final isMyMessage = message.user?.id == userId;
|
||||||
final nextMessage = index - 1 >= 0 ? messages[index - 1] : null;
|
final nextMessage = index - 1 >= 0 ? messages[index - 1] : null;
|
||||||
final isNextUserSame =
|
final isNextUserSame =
|
||||||
nextMessage != null && message.user!.id == nextMessage.user!.id;
|
nextMessage != null && message.user!.id == nextMessage.user!.id;
|
||||||
|
|||||||
@@ -987,7 +987,7 @@ class _MessageWidgetState extends State<MessageWidget>
|
|||||||
return widget.usernameBuilder!(context, widget.message);
|
return widget.usernameBuilder!(context, widget.message);
|
||||||
}
|
}
|
||||||
return Text(
|
return Text(
|
||||||
widget.message.user!.name,
|
widget.message.user?.name ?? '',
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
key: usernameKey,
|
key: usernameKey,
|
||||||
style: widget.messageTheme.messageAuthorStyle,
|
style: widget.messageTheme.messageAuthorStyle,
|
||||||
|
|||||||
@@ -12,21 +12,38 @@ import 'mocks.dart';
|
|||||||
void main() {
|
void main() {
|
||||||
late StreamChatClient client;
|
late StreamChatClient client;
|
||||||
late Channel channel;
|
late Channel channel;
|
||||||
|
late ChannelClientState channelClientState;
|
||||||
|
late ClientState clientState;
|
||||||
|
|
||||||
setUp(() {
|
setUp(() {
|
||||||
client = MockClient();
|
client = MockClient();
|
||||||
|
clientState = MockClientState();
|
||||||
|
when(() => client.state).thenAnswer((_) => clientState);
|
||||||
|
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'testid'));
|
||||||
|
when(() => clientState.currentUserStream)
|
||||||
|
.thenAnswer((_) => Stream.value(OwnUser(id: 'testid')));
|
||||||
channel = MockChannel();
|
channel = MockChannel();
|
||||||
when(() => channel.on(any(), any(), any(), any()))
|
when(() => channel.on(any(), any(), any(), any()))
|
||||||
.thenAnswer((_) => const Stream.empty());
|
.thenAnswer((_) => const Stream.empty());
|
||||||
final channelClientState = MockChannelState();
|
channelClientState = MockChannelState();
|
||||||
when(() => channel.state).thenReturn(channelClientState);
|
when(() => channel.state).thenReturn(channelClientState);
|
||||||
when(() => channelClientState.threadsStream)
|
when(() => channelClientState.threadsStream)
|
||||||
.thenAnswer((_) => const Stream.empty());
|
.thenAnswer((_) => const Stream.empty());
|
||||||
when(() => channelClientState.messagesStream)
|
when(() => channelClientState.messagesStream)
|
||||||
.thenAnswer((_) => const Stream.empty());
|
.thenAnswer((_) => const Stream.empty());
|
||||||
when(() => channelClientState.messages)
|
when(() => channelClientState.messages).thenReturn([]);
|
||||||
.thenReturn([Message(text: 'Hello World!')]);
|
when(() => channelClientState.isUpToDateStream)
|
||||||
|
.thenAnswer((_) => Stream.value(true));
|
||||||
when(() => channelClientState.isUpToDate).thenReturn(true);
|
when(() => channelClientState.isUpToDate).thenReturn(true);
|
||||||
|
when(() => channelClientState.unreadCountStream)
|
||||||
|
.thenAnswer((_) => Stream.value(0));
|
||||||
|
when(() => channelClientState.unreadCount).thenReturn(0);
|
||||||
|
when(() => channelClientState.readStream)
|
||||||
|
.thenAnswer((_) => const Stream.empty());
|
||||||
|
when(() => channelClientState.read).thenReturn([]);
|
||||||
|
when(() => channelClientState.membersStream)
|
||||||
|
.thenAnswer((_) => const Stream.empty());
|
||||||
|
when(() => channelClientState.members).thenReturn([]);
|
||||||
});
|
});
|
||||||
|
|
||||||
// https://github.com/GetStream/stream-chat-flutter/issues/674
|
// https://github.com/GetStream/stream-chat-flutter/issues/674
|
||||||
@@ -54,6 +71,11 @@ void main() {
|
|||||||
|
|
||||||
testWidgets('renders empty message list view with custom background',
|
testWidgets('renders empty message list view with custom background',
|
||||||
(tester) async {
|
(tester) async {
|
||||||
|
when(() => channelClientState.messagesStream)
|
||||||
|
.thenAnswer((_) => Stream.value([Message(text: 'Hello world!')]));
|
||||||
|
when(() => channelClientState.messages)
|
||||||
|
.thenReturn([Message(text: 'Hello world!')]);
|
||||||
|
|
||||||
const emptyWidgetKey = Key('empty_widget');
|
const emptyWidgetKey = Key('empty_widget');
|
||||||
|
|
||||||
await tester.pumpWidget(
|
await tester.pumpWidget(
|
||||||
@@ -63,12 +85,14 @@ void main() {
|
|||||||
child: StreamChat(
|
child: StreamChat(
|
||||||
client: client,
|
client: client,
|
||||||
streamChatThemeData: StreamChatThemeData.light().copyWith(
|
streamChatThemeData: StreamChatThemeData.light().copyWith(
|
||||||
messageListViewTheme: const MessageListViewThemeData(
|
messageListViewTheme: const MessageListViewThemeData(
|
||||||
backgroundColor: Colors.grey,
|
backgroundColor: Colors.grey,
|
||||||
backgroundImage: DecorationImage(
|
backgroundImage: DecorationImage(
|
||||||
image: AssetImage('assets/background.png'),
|
image: AssetImage('assets/background.png'),
|
||||||
fit: BoxFit.cover,
|
fit: BoxFit.cover,
|
||||||
))),
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
child: StreamChannel(
|
child: StreamChannel(
|
||||||
channel: channel,
|
channel: channel,
|
||||||
child: MessageListView(
|
child: MessageListView(
|
||||||
@@ -82,7 +106,7 @@ void main() {
|
|||||||
await tester.pumpAndSettle();
|
await tester.pumpAndSettle();
|
||||||
|
|
||||||
expect(find.byType(MessageListView), findsOneWidget);
|
expect(find.byType(MessageListView), findsOneWidget);
|
||||||
expect(find.byKey(emptyWidgetKey), findsOneWidget);
|
expect(find.byKey(emptyWidgetKey), findsNothing);
|
||||||
expect(find.byType(DecorationImage, skipOffstage: false), findsOneWidget);
|
expect(find.byType(DecorationImage, skipOffstage: false), findsOneWidget);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import 'package:stream_chat_flutter_core/stream_chat_flutter_core.dart';
|
|||||||
class MockClient extends Mock implements StreamChatClient {
|
class MockClient extends Mock implements StreamChatClient {
|
||||||
MockClient() {
|
MockClient() {
|
||||||
when(() => wsConnectionStatus).thenReturn(ConnectionStatus.connected);
|
when(() => wsConnectionStatus).thenReturn(ConnectionStatus.connected);
|
||||||
|
when(() => wsConnectionStatusStream)
|
||||||
|
.thenAnswer((_) => Stream.value(ConnectionStatus.connected));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user