@@ -659,6 +659,106 @@ class MessageComposerViewModel_Tests: StreamChatTestCase {
659659 XCTAssertFalse ( viewModel. canSendPoll)
660660 }
661661
662+ func test_showCommandsOverlay( ) {
663+ // Given
664+ let channelController = makeChannelController ( )
665+ let messageController = ChatMessageControllerSUI_Mock . mock (
666+ chatClient: chatClient,
667+ cid: . unique,
668+ messageId: . unique
669+ )
670+ let viewModel = MessageComposerViewModel (
671+ channelController: channelController,
672+ messageController: messageController
673+ )
674+
675+ // When
676+ let channelConfig = ChannelConfig ( commands: [ . init( ) ] )
677+ channelController. channel_mock = . mock(
678+ cid: . unique,
679+ config: channelConfig
680+ )
681+ viewModel. composerCommand = . init( id: " test " , typingSuggestion: . empty, displayInfo: nil )
682+
683+ // Then
684+ XCTAssertTrue ( viewModel. showCommandsOverlay)
685+ }
686+
687+ func test_showCommandsOverlay_whenComposerCommandIsNil_returnsFalse( ) {
688+ // Given
689+ let channelController = makeChannelController ( )
690+ let messageController = ChatMessageControllerSUI_Mock . mock (
691+ chatClient: chatClient,
692+ cid: . unique,
693+ messageId: . unique
694+ )
695+ let viewModel = MessageComposerViewModel (
696+ channelController: channelController,
697+ messageController: messageController
698+ )
699+
700+ // When
701+ let channelConfig = ChannelConfig ( commands: [ . init( ) ] )
702+ channelController. channel_mock = . mock(
703+ cid: . unique,
704+ config: channelConfig
705+ )
706+ viewModel. composerCommand = nil
707+
708+ // Then
709+ XCTAssertFalse ( viewModel. showCommandsOverlay)
710+ }
711+
712+ func test_showCommandsOverlay_whenCommandsAreDisabled_returnsFalse( ) {
713+ // Given
714+ let channelController = makeChannelController ( )
715+ let messageController = ChatMessageControllerSUI_Mock . mock (
716+ chatClient: chatClient,
717+ cid: . unique,
718+ messageId: . unique
719+ )
720+ let viewModel = MessageComposerViewModel (
721+ channelController: channelController,
722+ messageController: messageController
723+ )
724+
725+ // When
726+ let channelConfig = ChannelConfig ( commands: [ ] )
727+ channelController. channel_mock = . mock(
728+ cid: . unique,
729+ config: channelConfig
730+ )
731+ viewModel. composerCommand = . init( id: " test " , typingSuggestion: . empty, displayInfo: nil )
732+
733+ // Then
734+ XCTAssertFalse ( viewModel. showCommandsOverlay)
735+ }
736+
737+ func test_showCommandsOverlay_whenCommandsAreDisabledButIsMentions_returnsTrue( ) {
738+ // Given
739+ let channelController = makeChannelController ( )
740+ let messageController = ChatMessageControllerSUI_Mock . mock (
741+ chatClient: chatClient,
742+ cid: . unique,
743+ messageId: . unique
744+ )
745+ let viewModel = MessageComposerViewModel (
746+ channelController: channelController,
747+ messageController: messageController
748+ )
749+
750+ // When
751+ let channelConfig = ChannelConfig ( commands: [ ] )
752+ channelController. channel_mock = . mock(
753+ cid: . unique,
754+ config: channelConfig
755+ )
756+ viewModel. composerCommand = . init( id: " mentions " , typingSuggestion: . empty, displayInfo: nil )
757+
758+ // Then
759+ XCTAssertTrue ( viewModel. showCommandsOverlay)
760+ }
761+
662762 func test_addedAsset_extraData( ) {
663763 // Given
664764 let image = UIImage ( systemName: " person " ) !
0 commit comments