diff --git a/packages/stream_chat_flutter_core/lib/src/message_input_controller.dart b/packages/stream_chat_flutter_core/lib/src/message_input_controller.dart index 59dfbff7..3944d59b 100644 --- a/packages/stream_chat_flutter_core/lib/src/message_input_controller.dart +++ b/packages/stream_chat_flutter_core/lib/src/message_input_controller.dart @@ -63,7 +63,7 @@ class MessageInputController extends ValueNotifier { bool get isValid => validator(value); static bool _defaultValidator(Message message) => - message.text?.isNotEmpty != true && message.attachments.isEmpty; + message.text?.isNotEmpty == true || message.attachments.isNotEmpty; void _textEditingSyncer() { final cleanText = value.command == null diff --git a/packages/stream_chat_flutter_core/test/message_input_controller_test.dart b/packages/stream_chat_flutter_core/test/message_input_controller_test.dart new file mode 100644 index 00000000..842a58bb --- /dev/null +++ b/packages/stream_chat_flutter_core/test/message_input_controller_test.dart @@ -0,0 +1,30 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:stream_chat_flutter_core/stream_chat_flutter_core.dart'; + +void main() { + testWidgets( + 'should instantiate a new MessageInputController with default validator' + ' and empty message', + (tester) async { + final controller = MessageInputController(); + + expect(controller.isValid, false); + controller.text = 'test'; + expect(controller.isValid, true); + }, + ); + + testWidgets( + 'should instantiate a new MessageInputController with default validator' + ' and specified message', + (tester) async { + final message = Message(text: 'test'); + final controller = MessageInputController( + message: message, + ); + + expect(controller.message, message); + expect(controller.isValid, true); + }, + ); +}