test fixes
This commit is contained in:
@@ -46,6 +46,7 @@ extension IterableX<T> on Iterable<T> {
|
|||||||
/// Useful extension for [PlatformFile]
|
/// Useful extension for [PlatformFile]
|
||||||
extension PlatformFileX on PlatformFile {
|
extension PlatformFileX on PlatformFile {
|
||||||
/// Converts the [PlatformFile] into [AttachmentFile]
|
/// Converts the [PlatformFile] into [AttachmentFile]
|
||||||
|
//ignore: avoid_redundant_argument_values
|
||||||
AttachmentFile get toAttachmentFile => AttachmentFile(
|
AttachmentFile get toAttachmentFile => AttachmentFile(
|
||||||
path: kIsWeb ? null : path,
|
path: kIsWeb ? null : path,
|
||||||
name: name,
|
name: name,
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class MessageActionsModal extends StatefulWidget {
|
|||||||
this.showReplyMessage = true,
|
this.showReplyMessage = true,
|
||||||
this.showResendMessage = true,
|
this.showResendMessage = true,
|
||||||
this.showThreadReplyMessage,
|
this.showThreadReplyMessage,
|
||||||
this.showFlagButton = true,
|
this.showFlagButton,
|
||||||
this.showPinButton,
|
this.showPinButton,
|
||||||
this.editMessageInputBuilder,
|
this.editMessageInputBuilder,
|
||||||
this.reverse = false,
|
this.reverse = false,
|
||||||
@@ -73,13 +73,13 @@ class MessageActionsModal extends StatefulWidget {
|
|||||||
final bool showResendMessage;
|
final bool showResendMessage;
|
||||||
|
|
||||||
/// Flag for showing reply action
|
/// Flag for showing reply action
|
||||||
final bool showReplyMessage;
|
final bool? showReplyMessage;
|
||||||
|
|
||||||
/// Flag for showing thread reply action
|
/// Flag for showing thread reply action
|
||||||
final bool? showThreadReplyMessage;
|
final bool? showThreadReplyMessage;
|
||||||
|
|
||||||
/// Flag for showing flag action
|
/// Flag for showing flag action
|
||||||
final bool showFlagButton;
|
final bool? showFlagButton;
|
||||||
|
|
||||||
/// Flag for showing pin action
|
/// Flag for showing pin action
|
||||||
final bool? showPinButton;
|
final bool? showPinButton;
|
||||||
@@ -191,14 +191,15 @@ class _MessageActionsModalState extends State<MessageActionsModal> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
children: [
|
children: [
|
||||||
if (_userPermissions
|
if (widget.showReplyMessage ??
|
||||||
.contains(PermissionType.quoteMessage) &&
|
(_userPermissions
|
||||||
widget.showReplyMessage &&
|
.contains(PermissionType.quoteMessage) &&
|
||||||
widget.message.status == MessageSendingStatus.sent)
|
widget.message.status ==
|
||||||
|
MessageSendingStatus.sent))
|
||||||
_buildReplyButton(context),
|
_buildReplyButton(context),
|
||||||
if ((widget.showThreadReplyMessage ??
|
if (widget.showThreadReplyMessage ??
|
||||||
_userPermissions
|
_userPermissions
|
||||||
.contains(PermissionType.sendReply)) &&
|
.contains(PermissionType.sendReply) &&
|
||||||
(widget.message.status ==
|
(widget.message.status ==
|
||||||
MessageSendingStatus.sent) &&
|
MessageSendingStatus.sent) &&
|
||||||
widget.message.parentId == null)
|
widget.message.parentId == null)
|
||||||
@@ -209,16 +210,16 @@ class _MessageActionsModalState extends State<MessageActionsModal> {
|
|||||||
_isMyMessage && hasEditPermission)
|
_isMyMessage && hasEditPermission)
|
||||||
_buildEditMessage(context),
|
_buildEditMessage(context),
|
||||||
if (widget.showCopyMessage) _buildCopyButton(context),
|
if (widget.showCopyMessage) _buildCopyButton(context),
|
||||||
if (_userPermissions
|
if (widget.showFlagButton ??
|
||||||
.contains(PermissionType.flagMessage) &&
|
_userPermissions
|
||||||
widget.showFlagButton)
|
.contains(PermissionType.flagMessage))
|
||||||
_buildFlagButton(context),
|
_buildFlagButton(context),
|
||||||
if (widget.showPinButton ??
|
if (widget.showPinButton ??
|
||||||
_userPermissions
|
_userPermissions
|
||||||
.contains(PermissionType.pinMessage))
|
.contains(PermissionType.pinMessage))
|
||||||
_buildPinButton(context),
|
_buildPinButton(context),
|
||||||
if (widget.showDeleteMessage ??
|
if (widget.showDeleteMessage ??
|
||||||
_isMyMessage && hasDeletePermission)
|
(_isMyMessage && hasDeletePermission))
|
||||||
_buildDeleteButton(context),
|
_buildDeleteButton(context),
|
||||||
...widget.customActions
|
...widget.customActions
|
||||||
.map((action) => _buildCustomAction(
|
.map((action) => _buildCustomAction(
|
||||||
@@ -686,8 +687,8 @@ class _MessageActionsModalState extends State<MessageActionsModal> {
|
|||||||
void didChangeDependencies() {
|
void didChangeDependencies() {
|
||||||
final newStreamChannel = StreamChannel.of(context);
|
final newStreamChannel = StreamChannel.of(context);
|
||||||
_userPermissions = newStreamChannel.channel.ownCapabilities;
|
_userPermissions = newStreamChannel.channel.ownCapabilities;
|
||||||
_isMyMessage = widget.message.user!.id ==
|
_isMyMessage =
|
||||||
newStreamChannel.channel.client.state.currentUser!.id;
|
widget.message.user?.id == StreamChat.of(context).currentUser?.id;
|
||||||
super.didChangeDependencies();
|
super.didChangeDependencies();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ void main() {
|
|||||||
(WidgetTester tester) async {
|
(WidgetTester tester) async {
|
||||||
final client = MockClient();
|
final client = MockClient();
|
||||||
final clientState = MockClientState();
|
final clientState = MockClientState();
|
||||||
|
final channel = MockChannel();
|
||||||
|
|
||||||
when(() => client.state).thenReturn(clientState);
|
when(() => client.state).thenReturn(clientState);
|
||||||
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
||||||
@@ -32,19 +33,25 @@ void main() {
|
|||||||
streamChatThemeData: streamTheme,
|
streamChatThemeData: streamTheme,
|
||||||
client: client,
|
client: client,
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
child: MessageActionsModal(
|
child: StreamChannel(
|
||||||
message: Message(
|
channel: channel,
|
||||||
text: 'test',
|
child: MessageActionsModal(
|
||||||
user: User(
|
message: Message(
|
||||||
id: 'user-id',
|
text: 'test',
|
||||||
|
user: User(
|
||||||
|
id: 'user-id',
|
||||||
|
),
|
||||||
|
status: MessageSendingStatus.sent,
|
||||||
),
|
),
|
||||||
status: MessageSendingStatus.sent,
|
messageWidget: const Text(
|
||||||
|
'test',
|
||||||
|
key: Key('MessageWidget'),
|
||||||
|
),
|
||||||
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
|
showThreadReplyMessage: true,
|
||||||
|
showEditMessage: true,
|
||||||
|
showDeleteMessage: true,
|
||||||
),
|
),
|
||||||
messageWidget: const Text(
|
|
||||||
'test',
|
|
||||||
key: Key('MessageWidget'),
|
|
||||||
),
|
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -66,6 +73,7 @@ void main() {
|
|||||||
(WidgetTester tester) async {
|
(WidgetTester tester) async {
|
||||||
final client = MockClient();
|
final client = MockClient();
|
||||||
final clientState = MockClientState();
|
final clientState = MockClientState();
|
||||||
|
final channel = MockChannel();
|
||||||
|
|
||||||
when(() => client.state).thenReturn(clientState);
|
when(() => client.state).thenReturn(clientState);
|
||||||
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
||||||
@@ -79,20 +87,23 @@ void main() {
|
|||||||
streamChatThemeData: streamTheme,
|
streamChatThemeData: streamTheme,
|
||||||
client: client,
|
client: client,
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
child: MessageActionsModal(
|
child: StreamChannel(
|
||||||
showCopyMessage: false,
|
channel: channel,
|
||||||
showReplyMessage: false,
|
child: MessageActionsModal(
|
||||||
showThreadReplyMessage: false,
|
showCopyMessage: false,
|
||||||
message: Message(
|
showReplyMessage: false,
|
||||||
text: 'test',
|
showThreadReplyMessage: false,
|
||||||
user: User(
|
message: Message(
|
||||||
id: 'user-id',
|
text: 'test',
|
||||||
|
user: User(
|
||||||
|
id: 'user-id',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
|
messageWidget: const Text(
|
||||||
|
'test',
|
||||||
|
key: Key('MessageWidget'),
|
||||||
),
|
),
|
||||||
),
|
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
|
||||||
messageWidget: const Text(
|
|
||||||
'test',
|
|
||||||
key: Key('MessageWidget'),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -115,6 +126,7 @@ void main() {
|
|||||||
(WidgetTester tester) async {
|
(WidgetTester tester) async {
|
||||||
final client = MockClient();
|
final client = MockClient();
|
||||||
final clientState = MockClientState();
|
final clientState = MockClientState();
|
||||||
|
final channel = MockChannel();
|
||||||
|
|
||||||
when(() => client.state).thenReturn(clientState);
|
when(() => client.state).thenReturn(clientState);
|
||||||
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
||||||
@@ -130,24 +142,27 @@ void main() {
|
|||||||
streamChatThemeData: streamTheme,
|
streamChatThemeData: streamTheme,
|
||||||
client: client,
|
client: client,
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
child: MessageActionsModal(
|
child: StreamChannel(
|
||||||
messageWidget: const Text('test'),
|
channel: channel,
|
||||||
message: Message(
|
child: MessageActionsModal(
|
||||||
text: 'test',
|
messageWidget: const Text('test'),
|
||||||
user: User(
|
message: Message(
|
||||||
id: 'user-id',
|
text: 'test',
|
||||||
|
user: User(
|
||||||
|
id: 'user-id',
|
||||||
|
),
|
||||||
),
|
),
|
||||||
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
|
customActions: [
|
||||||
|
MessageAction(
|
||||||
|
leading: const Icon(Icons.check),
|
||||||
|
title: const Text('title'),
|
||||||
|
onTap: (m) {
|
||||||
|
tapped = true;
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
|
||||||
customActions: [
|
|
||||||
MessageAction(
|
|
||||||
leading: const Icon(Icons.check),
|
|
||||||
title: const Text('title'),
|
|
||||||
onTap: (m) {
|
|
||||||
tapped = true;
|
|
||||||
},
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -170,6 +185,7 @@ void main() {
|
|||||||
(WidgetTester tester) async {
|
(WidgetTester tester) async {
|
||||||
final client = MockClient();
|
final client = MockClient();
|
||||||
final clientState = MockClientState();
|
final clientState = MockClientState();
|
||||||
|
final channel = MockChannel();
|
||||||
|
|
||||||
when(() => client.state).thenReturn(clientState);
|
when(() => client.state).thenReturn(clientState);
|
||||||
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
||||||
@@ -186,19 +202,22 @@ void main() {
|
|||||||
streamChatThemeData: streamTheme,
|
streamChatThemeData: streamTheme,
|
||||||
client: client,
|
client: client,
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
child: MessageActionsModal(
|
child: StreamChannel(
|
||||||
messageWidget: const Text('test'),
|
channel: channel,
|
||||||
onReplyTap: (m) {
|
child: MessageActionsModal(
|
||||||
tapped = true;
|
messageWidget: const Text('test'),
|
||||||
},
|
onReplyTap: (m) {
|
||||||
message: Message(
|
tapped = true;
|
||||||
text: 'test',
|
},
|
||||||
user: User(
|
message: Message(
|
||||||
id: 'user-id',
|
text: 'test',
|
||||||
|
user: User(
|
||||||
|
id: 'user-id',
|
||||||
|
),
|
||||||
|
status: MessageSendingStatus.sent,
|
||||||
),
|
),
|
||||||
status: MessageSendingStatus.sent,
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
),
|
),
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -217,6 +236,7 @@ void main() {
|
|||||||
(WidgetTester tester) async {
|
(WidgetTester tester) async {
|
||||||
final client = MockClient();
|
final client = MockClient();
|
||||||
final clientState = MockClientState();
|
final clientState = MockClientState();
|
||||||
|
final channel = MockChannel();
|
||||||
|
|
||||||
when(() => client.state).thenReturn(clientState);
|
when(() => client.state).thenReturn(clientState);
|
||||||
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
||||||
@@ -233,19 +253,23 @@ void main() {
|
|||||||
streamChatThemeData: streamTheme,
|
streamChatThemeData: streamTheme,
|
||||||
client: client,
|
client: client,
|
||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
child: MessageActionsModal(
|
child: StreamChannel(
|
||||||
messageWidget: const Text('test'),
|
channel: channel,
|
||||||
onThreadReplyTap: (m) {
|
child: MessageActionsModal(
|
||||||
tapped = true;
|
messageWidget: const Text('test'),
|
||||||
},
|
onThreadReplyTap: (m) {
|
||||||
message: Message(
|
tapped = true;
|
||||||
text: 'test',
|
},
|
||||||
user: User(
|
message: Message(
|
||||||
id: 'user-id',
|
text: 'test',
|
||||||
|
user: User(
|
||||||
|
id: 'user-id',
|
||||||
|
),
|
||||||
|
status: MessageSendingStatus.sent,
|
||||||
),
|
),
|
||||||
status: MessageSendingStatus.sent,
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
|
showThreadReplyMessage: true,
|
||||||
),
|
),
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -295,6 +319,7 @@ void main() {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
|
showEditMessage: true,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -345,6 +370,7 @@ void main() {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
|
showEditMessage: true,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -545,6 +571,7 @@ void main() {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
|
showFlagButton: true,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -601,6 +628,7 @@ void main() {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
|
showFlagButton: true,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -657,6 +685,7 @@ void main() {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
|
showFlagButton: true,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -711,6 +740,7 @@ void main() {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
|
showDeleteMessage: true,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -767,6 +797,7 @@ void main() {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
|
showDeleteMessage: true,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ void main() {
|
|||||||
(WidgetTester tester) async {
|
(WidgetTester tester) async {
|
||||||
final client = MockClient();
|
final client = MockClient();
|
||||||
final clientState = MockClientState();
|
final clientState = MockClientState();
|
||||||
|
final channel = MockChannel();
|
||||||
final themeData = ThemeData();
|
final themeData = ThemeData();
|
||||||
|
|
||||||
when(() => client.state).thenReturn(clientState);
|
when(() => client.state).thenReturn(clientState);
|
||||||
@@ -33,13 +34,16 @@ void main() {
|
|||||||
home: StreamChat(
|
home: StreamChat(
|
||||||
client: client,
|
client: client,
|
||||||
streamChatThemeData: streamTheme,
|
streamChatThemeData: streamTheme,
|
||||||
child: MessageReactionsModal(
|
child: StreamChannel(
|
||||||
messageWidget: const Text(
|
channel: channel,
|
||||||
'test',
|
child: MessageReactionsModal(
|
||||||
key: Key('MessageWidget'),
|
messageWidget: const Text(
|
||||||
|
'test',
|
||||||
|
key: Key('MessageWidget'),
|
||||||
|
),
|
||||||
|
message: message,
|
||||||
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
),
|
),
|
||||||
message: message,
|
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -58,6 +62,7 @@ void main() {
|
|||||||
(WidgetTester tester) async {
|
(WidgetTester tester) async {
|
||||||
final client = MockClient();
|
final client = MockClient();
|
||||||
final clientState = MockClientState();
|
final clientState = MockClientState();
|
||||||
|
final channel = MockChannel();
|
||||||
final themeData = ThemeData();
|
final themeData = ThemeData();
|
||||||
|
|
||||||
when(() => client.state).thenReturn(clientState);
|
when(() => client.state).thenReturn(clientState);
|
||||||
@@ -89,16 +94,19 @@ void main() {
|
|||||||
home: StreamChat(
|
home: StreamChat(
|
||||||
client: client,
|
client: client,
|
||||||
streamChatThemeData: streamTheme,
|
streamChatThemeData: streamTheme,
|
||||||
child: MessageReactionsModal(
|
child: StreamChannel(
|
||||||
messageWidget: const Text(
|
channel: channel,
|
||||||
'test',
|
child: MessageReactionsModal(
|
||||||
key: Key('MessageWidget'),
|
messageWidget: const Text(
|
||||||
|
'test',
|
||||||
|
key: Key('MessageWidget'),
|
||||||
|
),
|
||||||
|
message: message,
|
||||||
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
|
reverse: true,
|
||||||
|
showReactions: false,
|
||||||
|
onUserAvatarTap: onUserAvatarTap,
|
||||||
),
|
),
|
||||||
message: message,
|
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
|
||||||
reverse: true,
|
|
||||||
showReactions: false,
|
|
||||||
onUserAvatarTap: onUserAvatarTap,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ class MockChannel extends Mock implements Channel {
|
|||||||
Future<void> keyStroke([String? parentId]) async {
|
Future<void> keyStroke([String? parentId]) async {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<String> get ownCapabilities => ['send-message'];
|
||||||
}
|
}
|
||||||
|
|
||||||
class MockChannelState extends Mock implements ChannelClientState {
|
class MockChannelState extends Mock implements ChannelClientState {
|
||||||
|
|||||||
Reference in New Issue
Block a user